【发布时间】:2013-07-04 08:44:44
【问题描述】:
考虑以下示例,我们解析数据并将结果传递给下一个函数:
Content Parse(const std::string& data);
void Process(Content content);
int main()
{
auto data = ReadData();
Process(Parse(data));
}
现在让我们使用std::optional 更改代码来处理失败的解析步骤:
optional<Content> Parse(const std::string& data);
void Process(Content content);
int main()
{
auto data = ReadData();
auto content = Parse(data);
if (content)
Process(move(*content));
}
从optional<T>::value() 迁移是否有效?如果std::optional 可以,那么boost::optional 也可以吗?
【问题讨论】:
-
我认为这会很好。包含的值在移动后应该处于有效但未指定的状态。
标签: c++ std c++14 boost-optional