|
| variant () |
|
template<typename T , std::enable_if_t< std::is_base_of_v< self_type, T > &&is_copy_constructible_v, int > = 0> |
| variant (T const &aOther) |
|
template<typename T , std::enable_if_t< std::is_base_of_v< self_type, T > &&is_move_constructible_v, int > = 0> |
| variant (T &&aOther) |
|
template<typename T , std::enable_if_t< std::is_same_v< T, abstract_type > &&is_copy_constructible_v, int > = 0> |
| variant (T const &aOther) |
|
template<typename T , std::enable_if_t< std::is_same_v< T, abstract_type > &&is_move_constructible_v, int > = 0> |
| variant (abstract_type &&aOther) |
|
template<typename T , std::enable_if_t<!std::is_base_of_v< self_type, T > &&!std::is_abstract_v< T >, int > = 0> |
| variant (T const &aValue) |
|
template<typename T , std::enable_if_t<!std::is_base_of_v< self_type, T > &&!std::is_abstract_v< T >, int > = 0> |
| variant (T &&aValue) |
|
template<typename T , std::enable_if_t<!std::is_same_v< T, abstract_type > &&std::is_abstract_v< T >, int > = 0> |
| variant (T const &aValue) |
|
template<typename T , std::enable_if_t<!std::is_same_v< T, abstract_type > &&std::is_abstract_v< T >, int > = 0> |
| variant (T &&aValue) |
|
template<typename T , std::enable_if_t< std::is_base_of_v< self_type, T > &&is_copy_assignable_v, int > = 0> |
self_type & | operator= (T const &aOther) |
|
template<typename T , std::enable_if_t< std::is_base_of_v< self_type, T > &&is_move_assignable_v, int > = 0> |
self_type & | operator= (T &&aOther) |
|
template<typename T , std::enable_if_t< std::is_same_v< T, abstract_type > &&is_copy_assignable_v, int > = 0> |
self_type & | operator= (T const &aOther) |
|
template<typename T , std::enable_if_t< std::is_same_v< T, abstract_type > &&is_move_assignable_v, int > = 0> |
self_type & | operator= (T &&aOther) |
|
template<typename T , std::enable_if_t<!std::is_base_of_v< self_type, T > &&!std::is_abstract_v< T >, int > = 0> |
self_type & | operator= (T const &aValue) |
|
template<typename T , std::enable_if_t<!std::is_base_of_v< self_type, T > &&!std::is_abstract_v< T >, int > = 0> |
self_type & | operator= (T &&aValue) |
|
template<typename T , std::enable_if_t<!std::is_same_v< T, abstract_type > &&std::is_abstract_v< T >, int > = 0> |
self_type & | operator= (T const &aValue) |
|
template<typename T , std::enable_if_t<!std::is_same_v< T, abstract_type > &&std::is_abstract_v< T >, int > = 0> |
self_type & | operator= (T &&aValue) |
|
std::size_t | index () const override |
|
| reference_counted () noexcept |
|
| reference_counted (const reference_counted &aOther) noexcept |
|
| ~reference_counted () |
|
reference_counted & | operator= (const reference_counted &) |
|
void | add_ref () const noexcept override |
|
void | release () const override |
|
int32_t | use_count () const noexcept override |
|
const base_type * | release_and_take_ownership () const override |
|
base_type * | release_and_take_ownership () override |
|
void | pin () const noexcept override |
|
void | unpin () const override |
|
i_ref_control_block & | control_block () override |
|
virtual | ~i_variant ()=default |
|
bool | holds_alternative () const |
|
T const * | get_if () const |
|
T * | get_if () |
|
T const & | get () const |
|
T & | get () |
|
virtual | ~i_reference_counted ()=default |
|
template<typename... Types>
class neolib::variant< Types >
Definition at line 137 of file variant.hpp.