頭文件:#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
