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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM