libstdc++
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

namespace  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 >
 std::optional (_Tp) -> optional< _Tp >
 
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

template<typename _Tp >
constexpr bool std::__is_optional_v
 
template<typename _Tp >
constexpr bool std::__is_optional_v< optional< _Tp > >
 
constexpr nullopt_t std::nullopt
 

Detailed Description

This is a Standard C++ Library header.

Definition in file optional.

Macro Definition Documentation

◆ _GLIBCXX_OPTIONAL

#define _GLIBCXX_OPTIONAL

Definition at line 31 of file optional.