从 boost::optional 检索对象

新手上路,请多包涵

假设一个方法返回类似这样的东西

boost::optional<SomeClass> SomeMethod()
{...}

现在假设我有这样的东西

boost::optional<SomeClass> val = SomeMethod();

现在我的问题是如何从 val 中提取 SomeClass ?

这样我就可以做这样的事情:

 SomeClass sc = val ?

原文由 MistyD 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 409
1 个回答

您可以使用取消引用运算符:

 SomeClass sc = *val;

或者,您可以使用 get() 方法:

 SomeClass sc = val.get();

这两个都返回对底层 SomeClass 对象的左值引用。

原文由 juanchopanza 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题