init boost :: необязательный для не копируемого объекта

Что я должен сделать, чтобы инициализироватьboost::optional< T >&nbsp;если базовый типT&nbsp;конструируемо по умолчанию, не копируемо / перемещаемо, но экземпляр все еще может существовать?

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

Мне кажется, что мою проблему можно решить с помощьюstd::unique_ptr/std::shared_ptr, но в этом случае мой вопрос: «Почемуboost::optional&nbsp;прогресс заморожен?