boost::optional

boost::optional,第1张

boost::optional boost::optional

文章目录
    • boost::optional
      • 创建对象
      • 方法
      • 使用:

创建对象
  • optional()
  • optional(none)
  • optional(v)
  • optional(condition, v)
  • emplace()
方法
  • value()
    • 如果未初始化,会抛异常bad_optional_access
  • value_or()
  • value_or_eval()
    • op1.value_or_eval({ return 1212; })
使用:

包含#include 头文件,可以直接打印optional对象

optional op0;
optional op1(none);
optional ops("bros");
// 只取前3个字符
ops.emplace("love", 3);

std::vector v(10);
// 容纳一个容器的引用
optional&> opv(v);

opv->push_back(5);
opv = none;

std::cout << "print: " << op1.value_or_eval([](){ return 1212; }) << std::endl;

工厂函数

根据参数类型自动推导optional的类型

auto x = make_optional(5);
auto y = make_optional((*x == 5), 1.0);

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5690809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存