zoukankan      html  css  js  c++  java
  • C++ 中关于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

  • 相关阅读:
    Java Learning (201108025)
    Java Learning (20110808)
    Negative numbers and binary representation
    “this” pointer
    NullPointerException
    Special Swiss Education
    Java Learning (20110802)
    More about Swiss keyboard
    About memory leak
    Application Verifier
  • 原文地址:https://www.cnblogs.com/hipposinsilt/p/6341222.html
Copyright © 2011-2022 走看看