optional File Reference

Go to the source code of this file.

## Classes

struct | std::_Optional_base< _Tp, bool, bool >
class | std::bad_optional_access
struct | std::nullopt_t
class | std::optional< _Tp >

## Namespaces

| std

## Macros

#define | __cpp_lib_optional
#define | _GLIBCXX_OPTIONAL

## Typedefs

template<typename _Tp , typename _Up >
using | std::__assigns_from_optional = __or_< is_assignable< _Tp &, const optional< _Up > & >, is_assignable< _Tp &, optional< _Up > & >, is_assignable< _Tp &, const optional< _Up > && >, is_assignable< _Tp &, optional< _Up > && > >
template<typename _Tp , typename _Up >

using

std::__converts_from_optional = __or_< is_constructible< _Tp, const optional< _Up > & >, is_constructible< _Tp, optional< _Up > & >, is_constructible< _Tp, const optional< _Up > && >, is_constructible< _Tp, optional< _Up > && >, is_convertible< const optional< _Up > &, _Tp >, is_convertible< optional< _Up > &, _Tp >, is_convertible< const optional< _Up > &&, _Tp >, is_convertible< optional< _Up > &&, _Tp > >

template<typename _Tp , typename _Up >
using | std::__optional_eq_t = __optional_relop_t< decltype(std::declval< const _Tp & >()==std::declval< const _Up & >()) >
template<typename _Tp , typename _Up >
using | std::__optional_ge_t = __optional_relop_t< decltype(std::declval< const _Tp & >() >=std::declval< const _Up & >()) >
template<typename _Tp , typename _Up >
using | std::__optional_gt_t = __optional_relop_t< decltype(std::declval< const _Tp & >() > std::declval< const _Up & >()) >
template<typename _Tp , typename _Up >
using | std::__optional_le_t = __optional_relop_t< decltype(std::declval< const _Tp & >()<=std::declval< const _Up & >()) >
template<typename _Tp , typename _Up >
using | std::__optional_lt_t = __optional_relop_t< decltype(std::declval< const _Tp & >()< std::declval< const _Up & >()) >
template<typename _Tp , typename _Up >
using | std::__optional_ne_t = __optional_relop_t< decltype(std::declval< const _Tp & >() !=std::declval< const _Up & >()) >
template<typename _Tp >
using | std::__optional_relop_t = enable_if_t< is_convertible< _Tp, bool >::value, bool >

## Functions

void | std::__throw_bad_optional_access ()
template<typename _Tp , typename... _Args>
constexpr enable_if_t< is_constructible_v< _Tp, _Args... >, optional< _Tp > > | std::make_optional (_Args &&... __args) noexcept(is_nothrow_constructible_v< _Tp, _Args... >)
template<typename _Tp >
constexpr enable_if_t< is_constructible_v< decay_t< _Tp >, _Tp >, optional< decay_t< _Tp > > > | std::make_optional (_Tp &&__t) noexcept(is_nothrow_constructible_v< optional< decay_t< _Tp >>, _Tp >)
template<typename _Tp , typename _Up , typename... _Args>
constexpr enable_if_t< is_constructible_v< _Tp, initializer_list< _Up > &, _Args... >, optional< _Tp > > | std::make_optional (initializer_list< _Up > __il, _Args &&... __args) noexcept(is_nothrow_constructible_v< _Tp, initializer_list< _Up > &, _Args... >)
template<typename _Tp , typename _Up >
constexpr auto | std::operator!= (const _Up &__lhs, const optional< _Tp > &__rhs) -> __optional_ne_t< _Up, _Tp >
template<typename _Tp , typename _Up >
constexpr auto | std::operator!= (const optional< _Tp > &__lhs, const _Up &__rhs) -> __optional_ne_t< _Tp, _Up >
template<typename _Tp , typename _Up >
constexpr auto | std::operator!= (const optional< _Tp > &__lhs, const optional< _Up > &__rhs) -> __optional_ne_t< _Tp, _Up >
template<typename _Tp >
constexpr bool | std::operator!= (const optional< _Tp > &__lhs, nullopt_t) noexcept
template<typename _Tp >
constexpr bool | std::operator!= (nullopt_t, const optional< _Tp > &__rhs) noexcept
template<typename _Tp , typename _Up >
constexpr auto | std::operator< (const _Up &__lhs, const optional< _Tp > &__rhs) -> __optional_lt_t< _Up, _Tp >
template<typename _Tp >
constexpr bool | std::operator< (const optional< _Tp > &, nullopt_t) noexcept
template<typename _Tp , typename _Up >
constexpr auto | std::operator< (const optional< _Tp > &__lhs, const _Up &__rhs) -> __optional_lt_t< _Tp, _Up >
template<typename _Tp , typename _Up >
constexpr auto | std::operator< (const optional< _Tp > &__lhs, const optional< _Up > &__rhs) -> __optional_lt_t< _Tp, _Up >
template<typename _Tp >
constexpr bool | std::operator< (nullopt_t, const optional< _Tp > &__rhs) noexcept
template<typename _Tp , typename _Up >
constexpr auto | std::operator<= (const _Up &__lhs, const optional< _Tp > &__rhs) -> __optional_le_t< _Up, _Tp >
template<typename _Tp , typename _Up >
constexpr auto | std::operator<= (const optional< _Tp > &__lhs, const _Up &__rhs) -> __optional_le_t< _Tp, _Up >
template<typename _Tp , typename _Up >
constexpr auto | std::operator<= (const optional< _Tp > &__lhs, const optional< _Up > &__rhs) -> __optional_le_t< _Tp, _Up >
template<typename _Tp >
constexpr bool | std::operator<= (const optional< _Tp > &__lhs, nullopt_t) noexcept
template<typename _Tp >
constexpr bool | std::operator<= (nullopt_t, const optional< _Tp > &) noexcept
template<typename _Tp , typename _Up >
constexpr auto | std::operator== (const _Up &__lhs, const optional< _Tp > &__rhs) -> __optional_eq_t< _Up, _Tp >
template<typename _Tp , typename _Up >
constexpr auto | std::operator== (const optional< _Tp > &__lhs, const _Up &__rhs) -> __optional_eq_t< _Tp, _Up >
template<typename _Tp , typename _Up >
constexpr auto | std::operator== (const optional< _Tp > &__lhs, const optional< _Up > &__rhs) -> __optional_eq_t< _Tp, _Up >
template<typename _Tp >
constexpr bool | std::operator== (const optional< _Tp > &__lhs, nullopt_t) noexcept
template<typename _Tp >
constexpr bool | std::operator== (nullopt_t, const optional< _Tp > &__rhs) noexcept
template<typename _Tp , typename _Up >
constexpr auto | std::operator> (const _Up &__lhs, const optional< _Tp > &__rhs) -> __optional_gt_t< _Up, _Tp >
template<typename _Tp , typename _Up >
constexpr auto | std::operator> (const optional< _Tp > &__lhs, const _Up &__rhs) -> __optional_gt_t< _Tp, _Up >
template<typename _Tp , typename _Up >
constexpr auto | std::operator> (const optional< _Tp > &__lhs, const optional< _Up > &__rhs) -> __optional_gt_t< _Tp, _Up >
template<typename _Tp >
constexpr bool | std::operator> (const optional< _Tp > &__lhs, nullopt_t) noexcept
template<typename _Tp >
constexpr bool | std::operator> (nullopt_t, const optional< _Tp > &) noexcept
template<typename _Tp , typename _Up >
constexpr auto | std::operator>= (const _Up &__lhs, const optional< _Tp > &__rhs) -> __optional_ge_t< _Up, _Tp >
template<typename _Tp >
constexpr bool | std::operator>= (const optional< _Tp > &, nullopt_t) noexcept
template<typename _Tp , typename _Up >
constexpr auto | std::operator>= (const optional< _Tp > &__lhs, const _Up &__rhs) -> __optional_ge_t< _Tp, _Up >
template<typename _Tp , typename _Up >
constexpr auto | std::operator>= (const optional< _Tp > &__lhs, const optional< _Up > &__rhs) -> __optional_ge_t< _Tp, _Up >
template<typename _Tp >
constexpr bool | std::operator>= (nullopt_t, const optional< _Tp > &__rhs) noexcept
template<typename _Tp >
enable_if_t<!(is_move_constructible_v< _Tp > &&is_swappable_v< _Tp >)> | std::swap (optional< _Tp > &, optional< _Tp > &)=delete
template<typename _Tp >
constexpr enable_if_t< is_move_constructible_v< _Tp > &&is_swappable_v< _Tp > > | std::swap (optional< _Tp > &__lhs, optional< _Tp > &__rhs) noexcept(noexcept(__lhs.swap(__rhs)))

## Variables

constexpr nullopt_t | std::nullopt

## Detailed Description

This is a Standard C++ Library header.

Definition in file optional.