码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 中关于optional 使用过程中遇到的问题

时间:2017-01-22 19:32:03      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:空指针   重要   boost   pac   ack   否则   父类   构造   optional   

头文件:#include <boost/optional.hpp>

           using namespace boost;

optional很像一个仅能存放一个元素的容器,它实现了"未初始化"的概念:如果元素未初始化,那么容器就是空的,否则,容器内就是有效的,已经初始化的值。

  • 无参的optional()或者optional(boost::none)构造一个未初始化optional对象,参数boost::none是一个类似空指针的none_t类型常量,表示未初始化;

        optional<int> op0;  //一个未初始化的optional对象
        optional<int> op1(none);//同上,使用none赋予未初始化值
        assert(!op0);
        assert(op0 == op1);

  • 最重要的一点就是如果要用的话就一定要初始化,尤其是在比较深层次的成员变量的类是optional类型时,一定要确保它的父类中所有的optional类型的都已经被初始化了。

       optional<string> ops("test");  //初始化为字符串test

C++ 中关于optional 使用过程中遇到的问题

标签:空指针   重要   boost   pac   ack   否则   父类   构造   optional   

原文地址:http://www.cnblogs.com/hipposinsilt/p/6341222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!