Public Types | Public Member Functions | Public Attributes | Private Types | List of all members
sol::optional< T > Class Template Reference

#include <forward.hpp>

Inheritance diagram for sol::optional< T >:
Inheritance graph
[legend]

Public Types

using value_type = T
 

Public Member Functions

template<class F >
SOL_TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t< F, T & > and_then (F &&f)&
 
template<class F >
SOL_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 U >
constexpr optional< typename std::decay< U >::typeconjunction (U &&u) const
 
SOL_TL_OPTIONAL_11_CONSTEXPR optional disjunction (const optional &rhs)&
 
constexpr optional disjunction (const optional &rhs) const &
 disjunction More...
 
SOL_TL_OPTIONAL_11_CONSTEXPR optional disjunction (const optional &rhs)&&
 disjunction More...
 
constexpr optional disjunction (const optional &rhs) const &&
 disjunction More...
 
SOL_TL_OPTIONAL_11_CONSTEXPR optional disjunction (optional &&rhs)&
 disjunction More...
 
constexpr optional disjunction (optional &&rhs) const &
 disjunction More...
 
SOL_TL_OPTIONAL_11_CONSTEXPR optional disjunction (optional &&rhs)&&
 disjunction More...
 
constexpr optional disjunction (optional &&rhs) const &&
 disjunction More...
 
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)
 
constexpr bool has_value () const noexcept
 
template<class F , class U >
map_or (F &&f, U &&u)&
 Maps the stored value with f if there is one, otherwise returns u. More...
 
template<class F , class U >
map_or (F &&f, U &&u)&&
 map_or More...
 
template<class F , class U >
map_or (F &&f, U &&u) const &
 map_or More...
 
template<class F , class U >
map_or (F &&f, U &&u) const &&
 map_or More...
 
template<class F , class U >
detail::invoke_result_t< U > map_or_else (F &&f, U &&u)&
 Maps the stored value with f if there is one, otherwise calls u and returns the result. More...
 
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 &&
 
constexpr operator bool () const noexcept
 has_value More...
 
SOL_TL_OPTIONAL_11_CONSTEXPR T & operator* ()&
 
constexpr const T & operator* () const &
 
SOL_TL_OPTIONAL_11_CONSTEXPR T && operator* ()&&
 
constexpr const T && operator* () const &&
 
constexpr const T * operator-> () const
 
SOL_TL_OPTIONAL_11_CONSTEXPR T * operator-> ()
 
optionaloperator= (nullopt_t) noexcept
 
optionaloperator= (const optional &rhs)=default
 
optionaloperator= (optional &&rhs)=default
 
template<class U = T, detail::enable_assign_forward< T, U > * = nullptr>
optionaloperator= (U &&u)
 
template<class U , detail::enable_assign_from_other< T, U, const U & > * = nullptr>
optionaloperator= (const optional< U > &rhs)
 
template<class U , detail::enable_assign_from_other< T, U, U > * = nullptr>
optionaloperator= (optional< U > &&rhs)
 
constexpr optional () noexcept=default
 
constexpr optional (nullopt_t) noexcept
 ctor_empty More...
 
SOL_TL_OPTIONAL_11_CONSTEXPR optional (const optional &rhs)=default
 
SOL_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)
 
template<class U , class... Args>
SOL_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)
 
constexpr optional (T &&u)
 
constexpr optional (const T &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)
 
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)
 
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)
 
template<class F , detail::enable_if_ret_void< F > * = nullptr>
optional< T > SOL_TL_OPTIONAL_11_CONSTEXPR or_else (F &&f)&
 Calls f if the optional is empty std::invoke_result_t<F> must be void or convertible to optional<T>. If *this has a value, returns *this. Otherwise, if f returns void, calls std::forward<F>(f) and returns std::nullopt. Otherwise, returns std::forward<F>(f)(). More...
 
template<class F , detail::disable_if_ret_void< F > * = nullptr>
optional< T > SOL_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 > SOL_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 > SOL_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 &&
 
void reset () noexcept
 Destroys the stored value if one exists, making the optional empty. More...
 
void swap (optional &rhs) noexcept(std::is_nothrow_move_constructible< T >::value &&detail::is_nothrow_swappable< T >::value)
 
optional take ()&
 
optional take () const &
 take More...
 
optional take ()&&
 take More...
 
optional take () const &&
 take More...
 
SOL_TL_OPTIONAL_11_CONSTEXPR T & value ()&
 
SOL_TL_OPTIONAL_11_CONSTEXPR const T & value () const &
 
SOL_TL_OPTIONAL_11_CONSTEXPR T && value ()&&
 
SOL_TL_OPTIONAL_11_CONSTEXPR const T && value () const &&
 
template<class U >
constexpr T value_or (U &&u) const &
 
template<class U >
SOL_TL_OPTIONAL_11_CONSTEXPRvalue_or (U &&u)&&
 value_or More...
 
 ~optional ()=default
 Destroys the stored value if there is one. More...
 

Public Attributes

template<class F >
decltype(optional_map_impl(std::declval< optional & >(), std::declval< F && >())) SOL_TL_OPTIONAL_11_CONSTEXPR map (F &&f)&
 Carries out some operation on the stored object if there is one. More...
 
template<class F >
decltype(optional_map_impl(std::declval< optional && >(), std::declval< F && >())) SOL_TL_OPTIONAL_11_CONSTEXPR map (F &&f)&&
 
template<class F >
decltype(optional_map_impl(std::declval< const optional & >(), std::declval< F && >())) constexpr map (F &&f) const &
 
template<class F >
decltype(optional_map_impl(std::declval< const optional && >(), std::declval< F && >())) constexpr map (F &&f) const &&
 

Private Types

using base = detail::optional_move_assign_base< T >
 

Additional Inherited Members

- Private Member Functions inherited from sol::detail::optional_operations_base< T >
template<class Opt >
void assign (Opt &&rhs)
 
template<class... Args>
void construct (Args &&...args) noexcept
 
SOL_TL_OPTIONAL_11_CONSTEXPR T & get ()&
 
SOL_TL_OPTIONAL_11_CONSTEXPR const T & get () const &
 
SOL_TL_OPTIONAL_11_CONSTEXPR T && get ()&&
 
constexpr const T && get () const &&
 
void hard_reset () noexcept
 
bool has_value () const
 
- Private Member Functions inherited from sol::detail::optional_storage_base< T >
SOL_TL_OPTIONAL_11_CONSTEXPR optional_storage_base () noexcept
 
SOL_TL_OPTIONAL_11_CONSTEXPR optional_storage_base (in_place_t, U &&...u)
 
 ~optional_storage_base ()
 
- Private Member Functions inherited from sol::detail::optional_delete_ctor_base< T >
optional_delete_ctor_baseoperator= (const optional_delete_ctor_base &)=default
 
optional_delete_ctor_baseoperator= (optional_delete_ctor_base &&) noexcept=default
 
 optional_delete_ctor_base ()=default
 
 optional_delete_ctor_base (const optional_delete_ctor_base &)=default
 
 optional_delete_ctor_base (optional_delete_ctor_base &&) noexcept=default
 
- Private Member Functions inherited from sol::detail::optional_delete_assign_base< T >
optional_delete_assign_baseoperator= (const optional_delete_assign_base &)=default
 
optional_delete_assign_baseoperator= (optional_delete_assign_base &&) noexcept=default
 
 optional_delete_assign_base ()=default
 
 optional_delete_assign_base (const optional_delete_assign_base &)=default
 
 optional_delete_assign_base (optional_delete_assign_base &&) noexcept=default
 
- Private Attributes inherited from sol::detail::optional_storage_base< T >
union {
   dummy   m_dummy
 
   T   m_value
 
}; 
 
dummy m_dummy
 
bool m_has_value
 
m_value
 

Detailed Description

template<class T>
class sol::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 798 of file forward.hpp.

Member Typedef Documentation

template<class T>
using sol::optional< T >::base = detail::optional_move_assign_base<T>
private

Definition at line 4551 of file sol.hpp.

template<class T>
using sol::optional< T >::value_type = T

Definition at line 4964 of file sol.hpp.

Constructor & Destructor Documentation

template<class T>
constexpr sol::optional< T >::optional ( )
defaultnoexcept

Constructs an optional that does not contain a value. ctor_empty

template<class T>
constexpr sol::optional< T >::optional ( nullopt_t  )
inlinenoexcept

ctor_empty

Definition at line 4971 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::optional ( const optional< T > &  rhs)
default

Copy constructor

If rhs contains a value, the stored value is direct-initialized with it. Otherwise, the constructed optional is empty.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::optional ( optional< T > &&  rhs)
default

Move constructor

If rhs contains a value, the stored value is direct-initialized with it. Otherwise, the constructed optional is empty.

template<class T>
template<class... Args>
constexpr sol::optional< T >::optional ( detail::enable_if_t< std::is_constructible< T, Args... >::value, in_place_t ,
Args &&...  args 
)
inlineexplicit

Constructs the stored value in-place using the given arguments. in_place template <class... Args> constexpr explicit optional(in_place_t, Args&&... args);

Definition at line 4990 of file sol.hpp.

template<class T>
template<class U , class... Args>
SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::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 
)
inlineexplicit

in_place template <class U, class... Args> explicit optional(in_place_t, std::initializer_list<U>&, Args&&... args);

Definition at line 4997 of file sol.hpp.

template<class T>
constexpr sol::optional< T >::optional ( T &&  u)
inline

Constructs the stored value with u. template <class u="T"> constexpr optional(U &&u);

Definition at line 5016 of file sol.hpp.

template<class T>
constexpr sol::optional< T >::optional ( const T &  u)
inline

Definition at line 5020 of file sol.hpp.

template<class T>
template<class U , detail::enable_from_other< T, U, const U & > * = nullptr, detail::enable_if_t< std::is_convertible< const U &, T >::value > * = nullptr>
sol::optional< T >::optional ( const optional< U > &  rhs)
inline

Converting copy constructor. template <class u>=""> optional(const optional<U> &rhs);

Definition at line 5027 of file sol.hpp.

template<class T>
template<class U , detail::enable_from_other< T, U, const U & > * = nullptr, detail::enable_if_t<!std::is_convertible< const U &, T >::value > * = nullptr>
sol::optional< T >::optional ( const optional< U > &  rhs)
inlineexplicit

Definition at line 5035 of file sol.hpp.

template<class T>
template<class U , detail::enable_from_other< T, U, U && > * = nullptr, detail::enable_if_t< std::is_convertible< U &&, T >::value > * = nullptr>
sol::optional< T >::optional ( optional< U > &&  rhs)
inline

Converting move constructor. template <class u>=""> optional(optional<U> &&rhs);

Definition at line 5044 of file sol.hpp.

template<class T>
template<class U , detail::enable_from_other< T, U, U && > * = nullptr, detail::enable_if_t<!std::is_convertible< U &&, T >::value > * = nullptr>
sol::optional< T >::optional ( optional< U > &&  rhs)
inlineexplicit

Definition at line 5052 of file sol.hpp.

template<class T>
sol::optional< T >::~optional ( )
default

Destroys the stored value if there is one.

Member Function Documentation

template<class T>
template<class F >
SOL_TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T&> sol::optional< T >::and_then ( F &&  f)
inline

and_then Carries out some operation which returns an optional on the stored object if there is one. std::invoke(std::forward<F>(f), value()) returns a std::optional<U> for some U.

Returns
Let U be the result of std::invoke(std::forward<F>(f), value()). Returns a std::optional<U>. The return value is empty if *this is empty, otherwise the return value of std::invoke(std::forward<F>(f), value()) is returned. and_then template <class f>=""> auto and_then(F &&f) &;

Definition at line 4619 of file sol.hpp.

template<class T>
template<class F >
SOL_TL_OPTIONAL_11_CONSTEXPR detail::invoke_result_t<F, T&&> sol::optional< T >::and_then ( F &&  f)
inline

and_then template <class f>=""> auto and_then(F &&f) &&;

Definition at line 4629 of file sol.hpp.

template<class T>
template<class F >
constexpr detail::invoke_result_t<F, const T&> sol::optional< T >::and_then ( F &&  f) const
inline

and_then template <class f>=""> auto and_then(F &&f) const &;

Definition at line 4639 of file sol.hpp.

template<class T>
template<class F >
constexpr detail::invoke_result_t<F, const T&&> sol::optional< T >::and_then ( F &&  f) const
inline

and_then template <class f>=""> auto and_then(F &&f) const &&;

Definition at line 4650 of file sol.hpp.

template<class T>
template<class U >
constexpr optional<typename std::decay<U>::type> sol::optional< T >::conjunction ( U &&  u) const
inline
Returns
u if *this has a value, otherwise an empty optional.

Definition at line 4883 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR optional sol::optional< T >::disjunction ( const optional< T > &  rhs)
inline
Returns
rhs if *this is empty, otherwise the current value. disjunction

Definition at line 4890 of file sol.hpp.

template<class T>
constexpr optional sol::optional< T >::disjunction ( const optional< T > &  rhs) const
inline

disjunction

Definition at line 4895 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR optional sol::optional< T >::disjunction ( const optional< T > &  rhs)
inline

disjunction

Definition at line 4900 of file sol.hpp.

template<class T>
constexpr optional sol::optional< T >::disjunction ( const optional< T > &  rhs) const
inline

disjunction

Definition at line 4906 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR optional sol::optional< T >::disjunction ( optional< T > &&  rhs)
inline

disjunction

Definition at line 4912 of file sol.hpp.

template<class T>
constexpr optional sol::optional< T >::disjunction ( optional< T > &&  rhs) const
inline

disjunction

Definition at line 4917 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR optional sol::optional< T >::disjunction ( optional< T > &&  rhs)
inline

disjunction

Definition at line 4922 of file sol.hpp.

template<class T>
constexpr optional sol::optional< T >::disjunction ( optional< T > &&  rhs) const
inline

disjunction

Definition at line 4928 of file sol.hpp.

template<class T>
template<class... Args>
T& sol::optional< T >::emplace ( Args &&...  args)
inline

Constructs the value in-place, destroying the current one if there is one. emplace

Definition at line 5149 of file sol.hpp.

template<class T>
template<class U , class... Args>
detail::enable_if_t<std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value, T&> sol::optional< T >::emplace ( std::initializer_list< U >  il,
Args &&...  args 
)
inline

emplace template <class U, class... Args>& emplace(std::initializer_list<U> il, Args &&... args);

Definition at line 5160 of file sol.hpp.

template<class T>
constexpr bool sol::optional< T >::has_value ( ) const
inlinenoexcept
Returns
whether or not the optional has a value has_value

Definition at line 5231 of file sol.hpp.

template<class T>
template<class F , class U >
U sol::optional< T >::map_or ( F &&  f,
U &&  u 
)
inline

Maps the stored value with f if there is one, otherwise returns u.

If there is a value stored, then f is called with **this and the value is returned. Otherwise u is returned.

map_or

Definition at line 4817 of file sol.hpp.

template<class T>
template<class F , class U >
U sol::optional< T >::map_or ( F &&  f,
U &&  u 
)
inline

map_or

Definition at line 4823 of file sol.hpp.

template<class T>
template<class F , class U >
U sol::optional< T >::map_or ( F &&  f,
U &&  u 
) const
inline

map_or

Definition at line 4829 of file sol.hpp.

template<class T>
template<class F , class U >
U sol::optional< T >::map_or ( F &&  f,
U &&  u 
) const
inline

map_or

Definition at line 4836 of file sol.hpp.

template<class T>
template<class F , class U >
detail::invoke_result_t<U> sol::optional< T >::map_or_else ( F &&  f,
U &&  u 
)
inline

Maps the stored value with f if there is one, otherwise calls u and returns the result.

If there is a value stored, then f is called with **this and the value is returned. Otherwise std::forward<U>(u)() is returned.

map_or_else template <class F, class U> map_or_else(F &&f, U &&u) &;

Definition at line 4851 of file sol.hpp.

template<class T>
template<class F , class U >
detail::invoke_result_t<U> sol::optional< T >::map_or_else ( F &&  f,
U &&  u 
)
inline

map_or_else template <class F, class U> map_or_else(F &&f, U &&u) &&;

Definition at line 4859 of file sol.hpp.

template<class T>
template<class F , class U >
detail::invoke_result_t<U> sol::optional< T >::map_or_else ( F &&  f,
U &&  u 
) const
inline

map_or_else template <class F, class U> map_or_else(F &&f, U &&u) const &;

Definition at line 4867 of file sol.hpp.

template<class T>
template<class F , class U >
detail::invoke_result_t<U> sol::optional< T >::map_or_else ( F &&  f,
U &&  u 
) const
inline

map_or_else template <class F, class U> map_or_else(F &&f, U &&u) const &&;

Definition at line 4876 of file sol.hpp.

template<class T>
constexpr sol::optional< T >::operator bool ( ) const
inlineexplicitnoexcept

has_value

Definition at line 5236 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR T& sol::optional< T >::operator* ( )
inline
Returns
the stored value a value is stored deref constexpr T &operator*();

Definition at line 5207 of file sol.hpp.

template<class T>
constexpr const T& sol::optional< T >::operator* ( ) const
inline

deref constexpr const T &operator*() const;

Definition at line 5213 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR T&& sol::optional< T >::operator* ( )
inline

Definition at line 5218 of file sol.hpp.

template<class T>
constexpr const T&& sol::optional< T >::operator* ( ) const
inline

Definition at line 5224 of file sol.hpp.

template<class T>
constexpr const T* sol::optional< T >::operator-> ( ) const
inline
Returns
a pointer to the stored value a value is stored pointer constexpr const T *operator->() const;

Definition at line 5193 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR T* sol::optional< T >::operator-> ( )
inline

pointer constexpr T *operator->();

Definition at line 5199 of file sol.hpp.

template<class T>
optional& sol::optional< T >::operator= ( nullopt_t  )
inlinenoexcept

Assignment to empty.

Destroys the current value if there is one.

Definition at line 5062 of file sol.hpp.

template<class T>
optional& sol::optional< T >::operator= ( const optional< T > &  rhs)
default

Copy assignment.

Copies the value from rhs if there is one. Otherwise resets the stored value in *this.

template<class T>
optional& sol::optional< T >::operator= ( optional< T > &&  rhs)
default

Move assignment.

Moves the value from rhs if there is one. Otherwise resets the stored value in *this.

template<class T>
template<class U = T, detail::enable_assign_forward< T, U > * = nullptr>
optional& sol::optional< T >::operator= ( U &&  u)
inline

Assigns the stored value from u, destroying the old value if there was one. optional &operator=(U &&u);

Definition at line 5087 of file sol.hpp.

template<class T>
template<class U , detail::enable_assign_from_other< T, U, const U & > * = nullptr>
optional& sol::optional< T >::operator= ( const optional< U > &  rhs)
inline

Converting copy assignment operator.

Copies the value from rhs if there is one. Otherwise resets the stored value in *this. optional &operator=(const optional<U> & rhs);

Definition at line 5104 of file sol.hpp.

template<class T>
template<class U , detail::enable_assign_from_other< T, U, U > * = nullptr>
optional& sol::optional< T >::operator= ( optional< U > &&  rhs)
inline

Converting move assignment operator.

Moves the value from rhs if there is one. Otherwise resets the stored value in *this. optional &operator=(optional<U> && rhs);

Definition at line 5128 of file sol.hpp.

template<class T>
template<class F , detail::enable_if_ret_void< F > * = nullptr>
optional<T> SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::or_else ( F &&  f)
inline

Calls f if the optional is empty std::invoke_result_t<F> must be void or convertible to optional<T>. If *this has a value, returns *this. Otherwise, if f returns void, calls std::forward<F>(f) and returns std::nullopt. Otherwise, returns std::forward<F>(f)().

or_else template <class f>=""> optional<T> or_else (F &&f) &;

Definition at line 4743 of file sol.hpp.

template<class T>
template<class F , detail::disable_if_ret_void< F > * = nullptr>
optional<T> SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::or_else ( F &&  f)
inline

Definition at line 4753 of file sol.hpp.

template<class T>
template<class F , detail::enable_if_ret_void< F > * = nullptr>
optional<T> sol::optional< T >::or_else ( F &&  f)
inline

or_else template <class f>=""> optional<T> or_else (F &&f) &&;

Definition at line 4760 of file sol.hpp.

template<class T>
template<class F , detail::disable_if_ret_void< F > * = nullptr>
optional<T> SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::or_else ( F &&  f)
inline

Definition at line 4770 of file sol.hpp.

template<class T>
template<class F , detail::enable_if_ret_void< F > * = nullptr>
optional<T> sol::optional< T >::or_else ( F &&  f) const
inline

or_else template <class f>=""> optional<T> or_else (F &&f) const &;

Definition at line 4777 of file sol.hpp.

template<class T>
template<class F , detail::disable_if_ret_void< F > * = nullptr>
optional<T> SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::or_else ( F &&  f) const
inline

Definition at line 4787 of file sol.hpp.

template<class T>
template<class F , detail::enable_if_ret_void< F > * = nullptr>
optional<T> sol::optional< T >::or_else ( F &&  f) const
inline

Definition at line 4794 of file sol.hpp.

template<class T>
template<class F , detail::disable_if_ret_void< F > * = nullptr>
optional<T> sol::optional< T >::or_else ( F &&  f) const
inline

Definition at line 4804 of file sol.hpp.

template<class T>
void sol::optional< T >::reset ( )
inlinenoexcept

Destroys the stored value if one exists, making the optional empty.

Definition at line 5304 of file sol.hpp.

template<class T>
void sol::optional< T >::swap ( optional< T > &  rhs)
inlinenoexcept

Swaps this optional with the other.

If neither optionals have a value, nothing happens. If both have a value, the values are swapped. If one has a value, it is moved to the other and the movee is left valueless.

Definition at line 5172 of file sol.hpp.

template<class T>
optional sol::optional< T >::take ( )
inline

Takes the value out of the optional, leaving it empty take

Definition at line 4935 of file sol.hpp.

template<class T>
optional sol::optional< T >::take ( ) const
inline

take

Definition at line 4942 of file sol.hpp.

template<class T>
optional sol::optional< T >::take ( )
inline

take

Definition at line 4949 of file sol.hpp.

template<class T>
optional sol::optional< T >::take ( ) const
inline

take

Definition at line 4957 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR T& sol::optional< T >::value ( )
inline
Returns
the contained value if there is one, otherwise throws [bad_optional_access] value constexpr T &value();

Definition at line 5244 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR const T& sol::optional< T >::value ( ) const
inline

value constexpr const T &value() const;

Definition at line 5255 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR T&& sol::optional< T >::value ( )
inline

Definition at line 5265 of file sol.hpp.

template<class T>
SOL_TL_OPTIONAL_11_CONSTEXPR const T&& sol::optional< T >::value ( ) const
inline

Definition at line 5277 of file sol.hpp.

template<class T>
template<class U >
constexpr T sol::optional< T >::value_or ( U &&  u) const
inline
Returns
the stored value if there is one, otherwise returns u value_or

Definition at line 5291 of file sol.hpp.

template<class T>
template<class U >
SOL_TL_OPTIONAL_11_CONSTEXPR T sol::optional< T >::value_or ( U &&  u)
inline

value_or

Definition at line 5298 of file sol.hpp.

Member Data Documentation

template<class T>
template<class F >
decltype(optional_map_impl(std::declval<optional&>(), std::declval<F&&>())) SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::map(F &&f)&
inline

Carries out some operation on the stored object if there is one.

Returns
Let U be the result of std::invoke(std::forward<F>(f), value()). Returns a std::optional<U>. The return value is empty if *this is empty, otherwise an optional<U> is constructed from the return value of std::invoke(std::forward<F>(f), value()) and is returned.

map template <class f>=""> auto map(F &&f) &;

Definition at line 4705 of file sol.hpp.

template<class T>
template<class F >
decltype(optional_map_impl(std::declval<optional&&>(), std::declval<F&&>())) SOL_TL_OPTIONAL_11_CONSTEXPR sol::optional< T >::map(F &&f)&&
inline

map template <class f>=""> auto map(F &&f) &&;

Definition at line 4712 of file sol.hpp.

template<class T>
template<class F >
decltype(optional_map_impl(std::declval<const optional&>(), std::declval<F&&>())) constexpr sol::optional< T >::map(F &&f) const &
inline

map template <class f>=""> auto map(F &&f) const&;

Definition at line 4719 of file sol.hpp.

template<class T>
template<class F >
decltype(optional_map_impl(std::declval<const optional&&>(), std::declval<F&&>())) constexpr sol::optional< T >::map(F &&f) const &&
inline

map template <class f>=""> auto map(F &&f) const&&;

Definition at line 4727 of file sol.hpp.


The documentation for this class was generated from the following files:


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Dec 6 2020 04:02:52