init boost :: optional für nicht kopierbare Objekte
Was soll ich tun, um zu initialisieren?boost::optional< T >
wenn zugrunde liegender TypT
ist nicht standardmäßig konstruierbar, nicht kopierbar / verschiebbar, aber die eigene Instanz kann noch existieren?
Ist es verboten fürboost::optional
aus irgendwelchen semantischen Gründen, um eine Mitgliedsfunktion zu haben wietemplate< typename... Args > boost::optional< T >::construct(Args && ...args)
, das liefert alle Argumente an Ort und Stelleoperator new
das Objekt vollständig zu konstruieren (für Nicht-Ref-TypT
)? Variante ist es, Nicht-Mitgliederfunktion zu haben wiestd::make_shared< T >
.
Es scheint mir, dass mein Problem durch die Verwendung von gelöst werden kannstd::unique_ptr
/std::shared_ptr
Aber in diesem Fall lautet meine Frage: "Warum?boost::optional
Fortschritt ist eingefroren? "