在this question我有一个答案,用optional
初始化run( std::in_place, ctor_arg )
以进行就地初始化。唉,我的一些目标平台似乎还不支持这个。是否有使用boost::optional
的前C ++ 17等效项?
也就是说,我有optional<foo> foo
并希望在构造函数初始化列表中初始化它:
class outer {
boost::optional<foo_t> foo;
outer() :
foo{ boost::in_place } // ???
我根据我在增强文档中找到的内容尝试foo{ boost::in_place<foo_t>( foo_t() ) }
,但我不确定它是否正确。我在构造函数中遇到与此处值相关的段错误,并希望将可能不正确的可选构造排除在原因之外。