init boost :: opcjonalny obiekt nie do skopiowania

Co powinienem zrobić, aby zainicjowaćboost::optional< T > jeśli typ bazowyT nie jest domyślny, konstruktywny, nie można go skopiować / przenieść, ale jego instancja wciąż może istnieć?

Czy jest to zabronioneboost::optional z jakichkolwiek semantycznych powodów, aby mieć jakąś funkcję członkatemplate< typename... Args > boost::optional< T >::construct(Args && ...args), która dostarcza wszystkich argumentów, aby je zastosowaćoperator new skonstruować obiekt całkowicie (dla typu innego niż refT)? Wariant polega na tym, że funkcja nie jest członkiemstd::make_shared< T >.

Wydaje mi się, że mój problem można rozwiązać za pomocąstd::unique_ptr/std::shared_ptr, ale w tym przypadku moje pytanie brzmi: „Dlaczegoboost::optional postęp jest zamrożony? ”.

questionAnswers(1)

yourAnswerToTheQuestion