Experimental library header <experimental/optional>
From cppreference.net
<
cpp
|
header
|
experimental
此头文件是库基础技术规范 ( v1 , v2 ) 的组成部分。
目录 |
类
| 名称 | 描述 |
|
(library fundamentals TS)
|
可能持有或未持有对象的包装器
(类模板) |
|
(library fundamentals TS)
|
指示对不包含值的 optional 进行受检访问时抛出的异常
(类) |
|
(library fundamentals TS)
|
用于 optional 类型原位构造的消歧标签类型
(类) |
|
特化
std::hash
算法
(类模板特化) |
|
|
(library fundamentals TS)
|
表示未初始化状态的可选类型指示器
(类) |
函数
比较操作 |
|
比较
optional
对象
(函数模板) |
|
特化算法 |
|
|
特化
std::swap
算法
(函数) |
|
创建
optional
对象
(函数模板) |
|
哈希支持 |
|
概要
namespace std { namespace experimental { inline namespace fundamentals_v1 { // 5.4, optional for object types template <class T> class optional; // 5.5, 原位构造 struct in_place_t{}; constexpr in_place_t in_place{}; // 5.6, Disengaged state indicator struct nullopt_t{see below}; constexpr nullopt_t nullopt(unspecified); // 5.7, Class bad_optional_access class bad_optional_access; // 5.8, 关系运算符 template <class T> constexpr bool operator==(const optional<T>&, const optional<T>&); template <class T> constexpr bool operator!=(const optional<T>&, const optional<T>&); template <class T> constexpr bool operator<(const optional<T>&, const optional<T>&); template <class T> constexpr bool operator>(const optional<T>&, const optional<T>&); template <class T> constexpr bool operator<=(const optional<T>&, const optional<T>&); template <class T> constexpr bool operator>=(const optional<T>&, const optional<T>&); // 5.9, Comparison with nullopt template <class T> constexpr bool operator==(const optional<T>&, nullopt_t) noexcept; template <class T> constexpr bool operator==(nullopt_t, const optional<T>&) noexcept; template <class T> constexpr bool operator!=(const optional<T>&, nullopt_t) noexcept; template <class T> constexpr bool operator!=(nullopt_t, const optional<T>&) noexcept; template <class T> constexpr bool operator<(const optional<T>&, nullopt_t) noexcept; template <class T> constexpr bool operator<(nullopt_t, const optional<T>&) noexcept; template <class T> constexpr bool operator<=(const optional<T>&, nullopt_t) noexcept; template <class T> constexpr bool operator<=(nullopt_t, const optional<T>&) noexcept; template <class T> constexpr bool operator>(const optional<T>&, nullopt_t) noexcept; template <class T> constexpr bool operator>(nullopt_t, const optional<T>&) noexcept; template <class T> constexpr bool operator>=(const optional<T>&, nullopt_t) noexcept; template <class T> constexpr bool operator>=(nullopt_t, const optional<T>&) noexcept; // 5.10, Comparison with T template <class T> constexpr bool operator==(const optional<T>&, const T&); template <class T> constexpr bool operator==(const T&, const optional<T>&); template <class T> constexpr bool operator!=(const optional<T>&, const T&); template <class T> constexpr bool operator!=(const T&, const optional<T>&); template <class T> constexpr bool operator<(const optional<T>&, const T&); template <class T> constexpr bool operator<(const T&, const optional<T>&); template <class T> constexpr bool operator<=(const optional<T>&, const T&); template <class T> constexpr bool operator<=(const T&, const optional<T>&); template <class T> constexpr bool operator>(const optional<T>&, const T&); template <class T> constexpr bool operator>(const T&, const optional<T>&); template <class T> constexpr bool operator>=(const optional<T>&, const T&); template <class T> constexpr bool operator>=(const T&, const optional<T>&); // 5.11, 专用算法 template <class T> void swap(optional<T>&, optional<T>&) noexcept(see below); template <class T> constexpr optional<see below> make_optional(T&&); } // namespace fundamentals_v1 } // namespace experimental // 5.12, Hash support template <class T> struct hash; template <class T> struct hash<experimental::optional<T>>; } // namespace std