|
template<class F > |
TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t< F, T & > | and_then (F &&f) & |
|
template<class F > |
TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t< F, T && > | and_then (F &&f) && |
|
template<class F > |
constexpr detail::invoke_result_t< F, const T & > | and_then (F &&f) const & |
|
template<class F > |
constexpr detail::invoke_result_t< F, const T && > | and_then (F &&f) const && |
|
template<class F > |
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(std::declval< optional & >(), std::declval< F && >())) | map (F &&f) & |
| Carries out some operation on the stored object if there is one.
|
|
template<class F > |
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(std::declval< optional && >(), std::declval< F && >())) | map (F &&f) && |
|
template<class F > |
constexpr decltype(optional_map_impl(std::declval< const optional & >(), std::declval< F && >())) | map (F &&f) const & |
|
template<class F > |
constexpr decltype(optional_map_impl(std::declval< const optional && >(), std::declval< F && >())) | map (F &&f) const && |
|
template<class F > |
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(std::declval< optional & >(), std::declval< F && >())) | transform (F &&f) & |
| Carries out some operation on the stored object if there is one.
|
|
template<class F > |
TL_OPTIONAL_11_CONSTEXPR decltype(optional_map_impl(std::declval< optional && >(), std::declval< F && >())) | transform (F &&f) && |
|
template<class F > |
constexpr decltype(optional_map_impl(std::declval< const optional & >(), std::declval< F && >())) | transform (F &&f) const & |
|
template<class F > |
constexpr decltype(optional_map_impl(std::declval< const optional && >(), std::declval< F && >())) | transform (F &&f) const && |
|
template<class F , detail::enable_if_ret_void< F > * = nullptr> |
optional< T > TL_OPTIONAL_11_CONSTEXPR | or_else (F &&f) & |
| Calls f if the optional is empty.
|
|
template<class F , detail::disable_if_ret_void< F > * = nullptr> |
optional< T > TL_OPTIONAL_11_CONSTEXPR | or_else (F &&f) & |
|
template<class F , detail::enable_if_ret_void< F > * = nullptr> |
optional< T > | or_else (F &&f) && |
|
template<class F , detail::disable_if_ret_void< F > * = nullptr> |
optional< T > TL_OPTIONAL_11_CONSTEXPR | or_else (F &&f) && |
|
template<class F , detail::enable_if_ret_void< F > * = nullptr> |
optional< T > | or_else (F &&f) const & |
|
template<class F , detail::disable_if_ret_void< F > * = nullptr> |
optional< T > TL_OPTIONAL_11_CONSTEXPR | or_else (F &&f) const & |
|
template<class F , detail::enable_if_ret_void< F > * = nullptr> |
optional< T > | or_else (F &&f) const && |
|
template<class F , detail::disable_if_ret_void< F > * = nullptr> |
optional< T > | or_else (F &&f) const && |
|
template<class F , class U > |
U | map_or (F &&f, U &&u) & |
| Maps the stored value with f if there is one, otherwise returns u .
|
|
template<class F , class U > |
U | map_or (F &&f, U &&u) && |
|
template<class F , class U > |
U | map_or (F &&f, U &&u) const & |
|
template<class F , class U > |
U | map_or (F &&f, U &&u) const && |
|
template<class F , class U > |
detail::invoke_result_t< U > | map_or_else (F &&f, U &&u) & |
|
template<class F , class U > |
detail::invoke_result_t< U > | map_or_else (F &&f, U &&u) && |
|
template<class F , class U > |
detail::invoke_result_t< U > | map_or_else (F &&f, U &&u) const & |
|
template<class F , class U > |
detail::invoke_result_t< U > | map_or_else (F &&f, U &&u) const && |
|
template<class U > |
constexpr optional< typename std::decay< U >::type > | conjunction (U &&u) const |
| Returns u if *this has a value, otherwise an empty optional.
|
|
TL_OPTIONAL_11_CONSTEXPR optional | disjunction (const optional &rhs) & |
| Returns rhs if *this is empty, otherwise the current value.
|
|
constexpr optional | disjunction (const optional &rhs) const & |
|
TL_OPTIONAL_11_CONSTEXPR optional | disjunction (const optional &rhs) && |
|
constexpr optional | disjunction (const optional &rhs) const && |
|
TL_OPTIONAL_11_CONSTEXPR optional | disjunction (optional &&rhs) & |
|
constexpr optional | disjunction (optional &&rhs) const & |
|
TL_OPTIONAL_11_CONSTEXPR optional | disjunction (optional &&rhs) && |
|
constexpr optional | disjunction (optional &&rhs) const && |
|
optional | take () |
| Takes the value out of the optional, leaving it empty.
|
|
constexpr | optional () noexcept=default |
| Constructs an optional that does not contain a value.
|
|
constexpr | optional (nullopt_t) noexcept |
|
TL_OPTIONAL_11_CONSTEXPR | optional (const optional &rhs)=default |
|
TL_OPTIONAL_11_CONSTEXPR | optional (optional &&rhs)=default |
|
template<class... Args> |
constexpr | optional (detail::enable_if_t< std::is_constructible< T, Args... >::value, in_place_t >, Args &&... args) |
| Constructs the stored value in-place using the given arguments.
|
|
template<class U , class... Args> |
TL_OPTIONAL_11_CONSTEXPR | optional (detail::enable_if_t< std::is_constructible< T, std::initializer_list< U > &, Args &&... >::value, in_place_t >, std::initializer_list< U > il, Args &&... args) |
|
template<class U = T, detail::enable_if_t< std::is_convertible< U &&, T >::value > * = nullptr, detail::enable_forward_value< T, U > * = nullptr> |
constexpr | optional (U &&u) |
| Constructs the stored value with u .
|
|
template<class U = T, detail::enable_if_t<!std::is_convertible< U &&, T >::value > * = nullptr, detail::enable_forward_value< T, U > * = nullptr> |
constexpr | optional (U &&u) |
|
template<class U , detail::enable_from_other< T, U, const U & > * = nullptr, detail::enable_if_t< std::is_convertible< const U &, T >::value > * = nullptr> |
| optional (const optional< U > &rhs) |
| Converting copy constructor.
|
|
template<class U , detail::enable_from_other< T, U, const U & > * = nullptr, detail::enable_if_t<!std::is_convertible< const U &, T >::value > * = nullptr> |
| optional (const optional< U > &rhs) |
|
template<class U , detail::enable_from_other< T, U, U && > * = nullptr, detail::enable_if_t< std::is_convertible< U &&, T >::value > * = nullptr> |
| optional (optional< U > &&rhs) |
| Converting move constructor.
|
|
template<class U , detail::enable_from_other< T, U, U && > * = nullptr, detail::enable_if_t<!std::is_convertible< U &&, T >::value > * = nullptr> |
| optional (optional< U > &&rhs) |
|
| ~optional ()=default |
| Destroys the stored value if there is one.
|
|
optional & | operator= (nullopt_t) noexcept |
|
optional & | operator= (const optional &rhs)=default |
|
optional & | operator= (optional &&rhs)=default |
|
template<class U = T, detail::enable_assign_forward< T, U > * = nullptr> |
optional & | operator= (U &&u) |
|
template<class U , detail::enable_assign_from_other< T, U, const U & > * = nullptr> |
optional & | operator= (const optional< U > &rhs) |
|
template<class U , detail::enable_assign_from_other< T, U, U > * = nullptr> |
optional & | operator= (optional< U > &&rhs) |
|
template<class... Args> |
T & | emplace (Args &&... args) |
|
template<class U , class... Args> |
detail::enable_if_t< std::is_constructible< T, std::initializer_list< U > &, Args &&... >::value, T & > | emplace (std::initializer_list< U > il, Args &&... args) |
|
void | swap (optional &rhs) noexcept(std::is_nothrow_move_constructible< T >::value &&detail::is_nothrow_swappable< T >::value) |
|
constexpr const T * | operator-> () const |
| Returns a pointer to the stored value.
|
|
TL_OPTIONAL_11_CONSTEXPR T * | operator-> () |
|
TL_OPTIONAL_11_CONSTEXPR T & | operator* () & |
| Returns the stored value.
|
|
constexpr const T & | operator* () const & |
|
TL_OPTIONAL_11_CONSTEXPR T && | operator* () && |
|
constexpr const T && | operator* () const && |
|
constexpr bool | has_value () const noexcept |
| Returns whether or not the optional has a value.
|
|
constexpr | operator bool () const noexcept |
|
TL_OPTIONAL_11_CONSTEXPR T & | value () & |
|
TL_OPTIONAL_11_CONSTEXPR const T & | value () const & |
|
TL_OPTIONAL_11_CONSTEXPR T && | value () && |
|
TL_OPTIONAL_11_CONSTEXPR const T && | value () const && |
|
template<class U > |
constexpr T | value_or (U &&u) const & |
| Returns the stored value if there is one, otherwise returns u
|
|
template<class U > |
TL_OPTIONAL_11_CONSTEXPR T | value_or (U &&u) && |
|
void | reset () noexcept |
| Destroys the stored value if one exists, making the optional empty.
|
|
template<class T>
class tl::optional< T >
An optional object is an object that contains the storage for another object and manages the lifetime of this contained object, if any. The contained object may be initialized after the optional object has been initialized, and may be destroyed before the optional object has been destroyed. The initialization state of the contained object is tracked by the optional object.
Definition at line 811 of file tl-optional.hpp.