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
прогресс заморожен?