Wie gezeigt here, std::unique_ptr
hat zwei constexpr
Konstrukteuren für Null-Zeiger:std :: unique_ptr constexpr Konstrukteuren
constexpr unique_ptr();
constexpr unique_ptr(nullptr_t);
Ich habe zwei Fragen für diese beiden Konstrukteure:
Warum brauchen wir zwei ? Können wir nicht erklären, nur ein Beispiel:
constexpr unique_ptr(nullptr_t = nullptr);
Ist das
constexpr
wirklich nützlich? Ich habe versucht, dies in meinem Code zu tun, aber es hat nicht kompilieren (g ++ 6.1.0-std=c++14
):constexpr std::unique_ptr<int> p; // error: the type 'const std::unique_ptr<int>' of constexpr variable 'p' // is not literal because 'std::unique_ptr<int>' has a non-trivial destructor
Das verweist auf die gleiche Frage – Dutow
@Dutow Hahahaha –
LOL Kopie/einfügen fehlgeschlagen. Aber die Antwort von oldrinb verweist auf die, die ich verlinken wollte. –