std::unique_ptr und Typen ohne default constructor
-
Könnte jemand bitte mal kurz erklären, warum hier ein default constructor erforderlich ist und was man tun kann, wenn man für den zu verwaltenden Typ keinen sinnvollen default constructor anbieten kann?
-
Wie kommst Du darauf, dass ein Standardkonstruktor vorhanden sein muss?
-
std::unique_ptr<A> ptr( new A(...) );?
-
Ich denke viel eher, dass du versuchst, den unique_ptr zu kopieren. Denn dann bekommt man nämlich eine Meldung bezüglich des unmöglichen Zugriffs auf den Standardkopierkonstruktor. Das ist gerade der einzige Reim, den ich mir auf die Anfrage bilden kann.
-
Decimad schrieb:
Standardkopierkonstruktor.
Huch!?
Standardkonstruktor/Defaultkonstruktor
Kopierkonstruktor
aber nicht beides
-
Wenn mir so etwas passiert, wobei ich das jetzt nicht mehr habe, weil es ein Designfehler war, dann geht:
std::uniqe_ptr<T> x(nullptr);nebst:
x.reset(new T);Edit: Ach halt, das war bestimmt nicht die Frage. Na ja, in irgendeinem Paralleluniversum vielleicht schon.
-
Ja, -Standard... da hatte ich irgendwie drin rumgefummelt, und am ende geht es ja bei meiner Theorie nicht um den Standardkonstruktor, sondern um den Kopierkonstruktor von unique_ptr... Und dann blieb das da stehen
