openMSX
Namespaces | Classes | Typedefs | Functions | Variables
opt_impl Namespace Reference

Namespaces

 swap_ns
 

Classes

struct  constexpr_optional_base
 
union  constexpr_storage_t
 
struct  has_overloaded_addressof
 
struct  optional_base
 
union  storage_t
 
struct  trivial_init_t
 

Typedefs

template<typename T >
using OptionalBase = std::conditional_t< std::is_trivially_destructible< T >::value, constexpr_optional_base< std::remove_const_t< T > >, optional_base< std::remove_const_t< T > >>
 

Functions

template<typename T >
constexpr T && constexpr_forward (std::remove_reference_t< T > &t) noexcept
 
template<typename T >
constexpr T && constexpr_forward (std::remove_reference_t< T > &&t) noexcept
 
template<typename T >
constexpr std::remove_reference_t< T > && constexpr_move (T &&t) noexcept
 
template<typename T , std::enable_if_t<!has_overloaded_addressof< T >::value > * = nullptr>
constexpr T * static_addressof (T &ref)
 
template<typename T , std::enable_if_t< has_overloaded_addressof< T >::value > * = nullptr>
T * static_addressof (T &ref)
 
template<typename U >
constexpr U convert (U v)
 

Variables

constexpr struct opt_impl::trivial_init_t trivial_init
 

Typedef Documentation

◆ OptionalBase

template<typename T >
using opt_impl::OptionalBase = typedef std::conditional_t< std::is_trivially_destructible<T>::value, constexpr_optional_base<std::remove_const_t<T> >, optional_base<std::remove_const_t<T> >>

Definition at line 229 of file optional.hh.

Function Documentation

◆ constexpr_forward() [1/2]

template<typename T >
constexpr T&& opt_impl::constexpr_forward ( std::remove_reference_t< T > &  t)
inlinenoexcept

Definition at line 50 of file optional.hh.

References t.

◆ constexpr_forward() [2/2]

template<typename T >
constexpr T&& opt_impl::constexpr_forward ( std::remove_reference_t< T > &&  t)
inlinenoexcept

Definition at line 57 of file optional.hh.

References t.

◆ constexpr_move()

template<typename T >
constexpr std::remove_reference_t<T>&& opt_impl::constexpr_move ( T &&  t)
inlinenoexcept

◆ convert()

template<typename U >
constexpr U opt_impl::convert ( v)

Definition at line 102 of file optional.hh.

◆ static_addressof() [1/2]

template<typename T , std::enable_if_t<!has_overloaded_addressof< T >::value > * = nullptr>
constexpr T* opt_impl::static_addressof ( T &  ref)

Definition at line 88 of file optional.hh.

◆ static_addressof() [2/2]

template<typename T , std::enable_if_t< has_overloaded_addressof< T >::value > * = nullptr>
T* opt_impl::static_addressof ( T &  ref)

Definition at line 95 of file optional.hh.

Variable Documentation

◆ trivial_init

constexpr struct opt_impl::trivial_init_t opt_impl::trivial_init