4.3.2 类摘要
optional很像一个仅能存放一个元素的容器,它实现了"未初始化"的概念:如果元素未初始化,那么容器就是空的,否则,容器内就是有效的、已经初始化的值。
optional的类简要声明如下:
- template<class T>
- class optional
- {
- public :
-
- optional () ;
- optional ( T const& v ) ;
- optional ( bool condition, T v ) ;
- optional& operator= ( T const& rhs ) ;
-
- T* operator ->() ;
- T& operator *() ;
- T& get() ;
- T* get_ptr() ;
- T const& get_value_or( T const& default ) const ;
-
- bool operator!() const ;
- };
optional的真实接口很复杂,因为它要能够包装任何的类型,但实际的接口还是比较简单并且易于理解的,下面的章节将进行详细说明。