Horizon
Public Types | Public Member Functions | Public Attributes | List of all members
ranges::optional< T > Struct Template Reference
Inheritance diagram for ranges::optional< T >:

Public Types

using value_type = meta::_t< std::remove_cv< T > >
 

Public Member Functions

 CPP_assert (destructible< T >)
 
constexpr optional (nullopt_t) noexcept
 
 optional (optional const &)=default
 
 optional (optional &&)=default
 
 template (typename E, typename... Args)(requires const ructible_from< T
 
std::initializer_list< E > constexpr Args optional (in_place_t, std::initializer_list< E > il, Args &&... args) noexcept(std::is_nothrow_constructible< T, std::initializer_list< E > &, Args... >::value)
 
 template (typename U=T)(requires(!same_as< detail
 
 template (typename U=T)(requires(!same_as< detail
 
 template (typename U)(requires optional_should_convert< U
 
T AND constructible_from< T, U const & > AND convertible_to< U const &, T > optional (optional< U > const &that)
 
 template (typename U)(requires optional_should_convert< U
 
T AND constructible_from< T, U const & > AND (!convertible_to< U const &, T >)) explicit optional(optional< U > const &that)
 
 template (typename U)(requires optional_should_convert< U
 
T AND constructible_from< T, U > AND convertible_to< U, T > optional (optional< U > &&that)
 
 template (typename U)(requires optional_should_convert< U
 
T AND constructible_from< T, U > AND (!convertible_to< U, T >)) explicit optional(optional< U > &&that)
 
constexpr optionaloperator= (nullopt_t) noexcept
 
optionaloperator= (optional const &)=default
 
optionaloperator= (optional &&)=default
 
 template (typename U=T)(requires(!same_as< optional
 
detail::decay_t< U > AND (!(satisfies< T, std::is_scalar > &&same_as< T, detail::decay_t< U >>)) AND const ructible_from< T
 
detail::decay_t< U > U AND constexpr assignable_from< T &, U > optionaloperator= (U &&u) noexcept(std::is_nothrow_constructible< T, U >::value &&std::is_nothrow_assignable< T &, U >::value)
 
 template (typename U)(requires optional_should_convert_assign< U
 
T AND constructible_from< T, const U & > AND constexpr assignable_from< T &, const U & > optionaloperator= (optional< U > const &that)
 
 template (typename U)(requires optional_should_convert_assign< U
 
T AND constructible_from< T, U > AND constexpr assignable_from< T &, U > optionaloperator= (optional< U > &&that)
 
 template (typename I)(requires const ructible_from< T
 
 template (typename... Args)(requires const ructible_from< T
 
Args T & emplace (Args &&... args) noexcept(std::is_nothrow_constructible< T, Args... >::value)
 
 template (typename E, typename... Args)(requires const ructible_from< T
 
std::initializer_list< E > Args T & emplace (std::initializer_list< E > il, Args &&... args) noexcept(std::is_nothrow_constructible< T, std::initializer_list< E > &, Args... >::value)
 
constexpr operator bool () const noexcept
 
constexpr T const & value () const &
 
constexpr T & value () &
 
constexpr T const && value () const &&
 
constexpr T && value () &&
 
 template (typename U)(requires copy_constructible< T > AND convertible_to< U
 
constexpr T T value_or (U &&u) const &
 
 template (typename U)(requires move_constructible< T > AND convertible_to< U
 
constexpr T T value_or (U &&u) &&
 

Public Attributes

decltype(*std::declval< const I & >()) T emplace_deref )(const I &it)
 

The documentation for this struct was generated from the following file: