init boost :: необязательный для не копируемого объекта
Что я должен сделать, чтобы инициализироватьboost::optional< T >
если базовый типT
конструируемо по умолчанию, не копируемо / перемещаемо, но экземпляр все еще может существовать?
Это запрещено дляboost::optional
по любым семантическим причинам иметь некоторые функции-члены, такие какtemplate< typename... Args > boost::optional< T >::construct(Args && ...args)
, что доставляет все аргументы на местоoperator new
полностью построить объект (для нереф-типаT
)? Вариант должен иметь функцию, не являющуюся членомstd::make_shared< T >
.
Мне кажется, что мою проблему можно решить с помощьюstd::unique_ptr
/std::shared_ptr
, но в этом случае мой вопрос: «Почемуboost::optional
прогресс заморожен?