标签: constructor optional c++17 explicit in-place
std::in_place std::optional的{{1}}构造函数必须为explicit的C ++ 17标准says(与boost::optional相同)。但为什么??这背后的原因是什么?
std::in_place
std::optional
explicit
boost::optional
它禁止有这样一个很好的代码:
struct Value { Value(int) { } }; std::optional<Value> giveValueFive() { return {std::in_place, 5}; }