Experimental library header <experimental/optional>
From cppreference.net
<
cpp
|
header
|
experimental
Этот заголовок является частью Technical Standard по фундаментальным библиотекам ( v1 , v2 ).
Содержание |
Классы
| Название | Описание |
|
(library fundamentals TS)
|
обёртка, которая может содержать или не содержать объект
(шаблон класса) |
|
(library fundamentals TS)
|
исключение, указывающее на проверенный доступ к optional, не содержащему значения
(класс) |
|
(library fundamentals TS)
|
тип тега для устранения неоднозначности при in-place конструировании optional типов
(класс) |
|
специализирует алгоритм
std::hash
(специализация шаблона класса) |
|
|
(library fundamentals TS)
|
индикатор optional типа с неинициализированным состоянием
(класс) |
Функции
Сравнение |
|
сравнивает объекты
optional
(шаблон функции) |
|
Специализированные алгоритмы |
|
|
специализирует алгоритм
std::swap
(функция) |
|
создает объект
optional
(шаблон функции) |
|
Поддержка хеширования |
|
Синопсис
namespace std { namespace experimental { inline namespace fundamentals_v1 { // 5.4, опционально для объектных типов template <class T> class optional; // 5.5, In-place construction struct in_place_t{}; constexpr in_place_t in_place{}; // 5.6, Индикатор состояния отключения struct nullopt_t{see below}; constexpr nullopt_t nullopt(unspecified); // 5.7, Класс 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, Сравнение с 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, Сравнение с 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, Поддержка хеширования template <class T> struct hash; template <class T> struct hash<experimental::optional<T>>; } // namespace std