当前位置: 首页 > news >正文

免费高清图片素材网站有哪些惠州室内设计公司排名

免费高清图片素材网站有哪些,惠州室内设计公司排名,wordpress博客seo优化插件,新人怎么自己做网站模版类std::optional管理一个可选的(optional)存储值(contained value)#xff0c;即可能存在也可能不存在的值。std::optional的一个常见用例是存储可能失败的函数的返回值。与其它方法相反(例如std::pairT, bool),std::optional可以很好地处理构造成本高昂的对象即可能存在也可能不存在的值。std::optional的一个常见用例是存储可能失败的函数的返回值。与其它方法相反(例如std::pairT, bool),std::optional可以很好地处理构造成本高昂的对象并且更具可读性因为意图被明确表达。       在任何给定时间点的std::optional的任何实例要么存储值要么不存储值。如果std::optional存储一个值则保证该值作为std::optional对象占用空间的一部分进行分配即不会发生动态内存分配。       当std::optionalT类型的对象根据上下文转换为bool时如果该对象存储一个值则转换返回true如果不存储值则转换返回false。       和std::variant、std::any一样std::optional对象有值语义其拷贝操作会被实现为深拷贝。std::optional对象也支持move语义。       std::optional模拟了一个可以为空的任意类型的实例它可以被用作成员、参数、返回值等。 std::optional提供了一种标准化的方式来表示可选值(optional value)消除了对空指针的需要并增强了代码的可读性。std::optional是使用原始指针或其它机制来表示缺失值或可选值的更安全的替代方案。根据设计std::optional强制用户在访问某个值之前显式检查该值是否存在从而最大限度地降低空指针解引用错误的风险。 std::make_optional:创建一个用参数初始化的std::optional对象。 std::nullopt是std::nullopt_t类型的常量用于指示具有未初始化(或空的)状态的std::optional类型作为std::optional对象无值时候的值.       std::optional特别适合延迟初始化问题它本身就是延迟初始化的一个实例。所存储的T可以在构造时初始化或者稍后初始化或者从不初始化。 int test_optional_init() {std::optionalint var;if (!var.has_value())std::cout var is not set\n; // var is not setvar 8; // error: *var 8, 因为var采用默认初始化为空if (var.has_value())std::cout var is present: var.value() \n; // var is present: 8if (var)std::cout var is present: *var \n; // var is present: 8std::optionalint var2{ std::nullopt }; // 将var2初始化置于empty状态if (!var2.has_value())std::cout var2 is not set\n; // var2 is not setstd::optionalstd::string var3{ China };if (var3 std::nullopt)std::cout var3 std::nullopt\n; // var3 std::nulloptauto var4 std::make_optionalstd::vectorchar*({ China, Beijing, Haidian });for (const auto v : *var4)std::cout v; // China Beijing Haidianstd::cout \n;// 内建类型可不需指明存储类型,deduction guidestd::optional var5{ 2 }; std::cout var5: var5.value() \n; // var5: 2std::optional var6{ std::string{China} };std::cout var6: var6.value() \n; // var6: Chinareturn 0; } std::optional成员函数:       1.访问存储值       (1).var.value():返回引用如果没有值会抛出std::bad_optional_access异常       (2).*var:如果没有值会crash(or undefined behavior)返回存储值的引用应该只用于已经确定含有值的场景       (3).var.value_or返回值注意与value()的区别如果没有值则获取备选值       (4).var-返回存储值的指针可访问内部值的成员       2.emplace:赋予一个新值(in-place)如果在调用之前已经存储一个值则通过调用其析构函数来销毁所存储的值       3.reset:如果存储一个值则销毁该值否则没有任何影响       4.has_value:返回std::optional对象是否存有值       5.operator bool()返回std::optional对象是否存有值       6.swap:交换两个std::optional对象的值       非成员函数比较std::optional对象operator, !, , , , , 。比较std::optional对象时empty值即std::nullopt比任何有值的std::optional对象都要小。       std::bad_optional_access是一个异常类直接派生自std::exception,用于处理在访问std::optional对象时发生的错误当尝试访问一个没有存储值的std::optional对象时会抛出std::bad_optional_access异常。 int test_optional_member_functions() {// 获取std::optional值: var.value(), *var, var.value_or, var-std::optionalint var{ 8 };std::cout var: var.value() , *var \n; // var: 8, 8*var 6; std::cout var: *var \n; // var: 6var 8; std::cout var: *var \n; // var: 8*var 10; std::cout var: var.value_or(66) \n; // var: 10var.reset(); std::cout var: var.value_or(66) \n; // var: 66std::optionalstd::string var2{ China };std::cout var2: var2-data() \n; // var2: Chinavar.reset(); // or: var {};try {std::cout var: var.value() \n;//std::cout var: *var \n; // 直接crash掉}catch (const std::bad_optional_access e) {std::cout exception: e.what() \n; // var: exception: Bad optional access}std::string str{ Beijing }; // 不要对常量变量使用std::movestd::optionalstd::string var3(std::move(str));std::cout var3: var3.value() , str: str \n; // var3: Beijing, str:var3.emplace(Haidian);std::cout var3: var3.value() \n; // var3: Haidianif (var3.has_value())std::cout var3 has value\n; // var3 has valueif (var3)std::cout var3 has value\n; // var3 has valuestd::cout var2: var2.value() , var3: var3.value() \n; // var2: China, var3: Haidianvar2.swap(var3);std::cout var2: var2.value() , var3: var3.value() \n; // var2: Haidian, var3: Chinaif (var2 ! var3)std::cout var2 ! var3\n; // var2 ! var3return 0; } 执行结果如下图所示 GitHubhttps://github.com/fengbingchun/Messy_Test
http://www.w-s-a.com/news/237812/

相关文章:

  • 书店商城网站html模板下载企业网站建设方案书范文
  • 建设网站是普通办公吗快速排名seo软件
  • 大型外贸网站建设网站建设图片尺寸要求
  • 网站建设可信赖北京网站开发月薪
  • 专门做lolh的网站wordpress 模版 cho's
  • 网上做设计兼职哪个网站好点网站开发毕业周记
  • 自学商城网站建设无为网页定制
  • wordpress全站cdn手机网站调用分享
  • 淄博做网站58同城wordpress微信号订阅
  • 不同的网站 做301公共资源交易中心是干嘛的
  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回
  • 销售产品做单页还是网站seo有哪些作用
  • 网站视觉规范南宁网站优化推广
  • 公司起名打分最准的免费网站学设计的学校
  • 用cn作网站行么WordPress网站打不开nginx
  • 顺德龙江网站建设百货商城自助下单网站
  • 门户网站采用较多的模式是wordpress自动搜索缩略图
  • 深圳设计功能网站做网站推广怎么做
  • 海口专业网站建设地址wordpress站点标题是什么
  • 青岛做网站那家好网页素材网
  • 宁夏银川做网站的公司网络营销有哪些推广方法
  • 免费域名网站哪个最好东莞企业网站排名
  • dz做网站网址模版
  • 做外贸网站平台中华室内设计师网