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_ptrstd::shared_ptr, но в этом случае мой вопрос:Зачемboost::optional прогресс заморожен?

Ответы на вопрос(1)

Ваш ответ на вопрос