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
进度会被冻结?”。