【发布时间】:2013-05-09 12:44:41
【问题描述】:
如果基础类型 T 是非默认可构造、不可复制/可移动,但实例仍然可以存在,我应该如何初始化 boost::optional< 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 进度被冻结?”。
【问题讨论】:
标签: boost default-constructor noncopyable boost-optional