|
| | 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.