neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::i_plugin_variant< Id, Types > Class Template Referenceabstract

#include <i_plugin_variant.hpp>

Inheritance diagram for neolib::i_plugin_variant< Id, Types >:
neolib::i_reference_counted

Public Types

typedef self_type abstract_type
 
typedef Id id_t
 
typedef std::size_t index_type
 

Public Member Functions

ref_ptr< self_type > clone () const
 
self_type & operator= (const self_type &aOther)
 
self_type & operator= (self_type &&aOther)
 
template<typename T >
std::enable_if_t<!std::is_base_of_v< self_type, T >, self_type > & operator= (const T &aArgument)
 
template<typename T >
std::enable_if_t<!std::is_base_of_v< self_type, std::remove_reference_t< T > >, self_type > & operator= (T &&aArgument)
 
self_type & operator= (const none_t)
 
virtual bool operator== (const self_type &that) const =0
 
virtual bool operator< (const self_type &that) const =0
 
std::partial_ordering operator<=> (const self_type &that) const
 
bool operator== (const none_t) const
 
bool operator!= (const none_t) const
 
virtual void clear ()=0
 
virtual id_t which () const =0
 
virtual bool empty () const =0
 
template<typename T >
const Tget () const
 
template<typename T >
Tget ()
 
virtual const i_enum_t< Id >::enumerators_t & ids () const =0
 
- Public Member Functions inherited from neolib::i_reference_counted
virtual ~i_reference_counted ()=default
 
virtual void add_ref () const noexcept=0
 
virtual void release () const =0
 
virtual int32_t use_count () const noexcept=0
 
virtual const i_reference_countedrelease_and_take_ownership () const =0
 
virtual i_reference_countedrelease_and_take_ownership ()=0
 
virtual void pin () const noexcept=0
 
virtual void unpin () const =0
 
virtual i_ref_control_blockcontrol_block ()=0
 

Friends

template<typename , typename... >
class plugin_variant
 

Detailed Description

template<typename Id, typename... Types>
class neolib::i_plugin_variant< Id, Types >

Definition at line 79 of file i_plugin_variant.hpp.

Member Typedef Documentation

◆ abstract_type

template<typename Id , typename... Types>
typedef self_type neolib::i_plugin_variant< Id, Types >::abstract_type

Definition at line 88 of file i_plugin_variant.hpp.

◆ id_t

template<typename Id , typename... Types>
typedef Id neolib::i_plugin_variant< Id, Types >::id_t

Definition at line 89 of file i_plugin_variant.hpp.

◆ index_type

template<typename Id , typename... Types>
typedef std::size_t neolib::i_plugin_variant< Id, Types >::index_type

Definition at line 90 of file i_plugin_variant.hpp.

Member Function Documentation

◆ clear()

template<typename Id , typename... Types>
virtual void neolib::i_plugin_variant< Id, Types >::clear ( )
pure virtual

◆ clone()

template<typename Id , typename... Types>
ref_ptr< self_type > neolib::i_plugin_variant< Id, Types >::clone ( ) const
inline

Definition at line 93 of file i_plugin_variant.hpp.

◆ empty()

template<typename Id , typename... Types>
virtual bool neolib::i_plugin_variant< Id, Types >::empty ( ) const
pure virtual

◆ get() [1/2]

template<typename Id , typename... Types>
template<typename T >
T & neolib::i_plugin_variant< Id, Types >::get ( )
inline

Definition at line 164 of file i_plugin_variant.hpp.

◆ get() [2/2]

template<typename Id , typename... Types>
template<typename T >
const T & neolib::i_plugin_variant< Id, Types >::get ( ) const
inline

Definition at line 157 of file i_plugin_variant.hpp.

◆ ids()

template<typename Id , typename... Types>
virtual const i_enum_t< Id >::enumerators_t & neolib::i_plugin_variant< Id, Types >::ids ( ) const
pure virtual

◆ operator!=()

template<typename Id , typename... Types>
bool neolib::i_plugin_variant< Id, Types >::operator!= ( const none_t  ) const
inline

Definition at line 147 of file i_plugin_variant.hpp.

◆ operator<()

template<typename Id , typename... Types>
virtual bool neolib::i_plugin_variant< Id, Types >::operator< ( const self_type &  that) const
pure virtual

◆ operator<=>()

template<typename Id , typename... Types>
std::partial_ordering neolib::i_plugin_variant< Id, Types >::operator<=> ( const self_type &  that) const
inline

Definition at line 134 of file i_plugin_variant.hpp.

◆ operator=() [1/5]

template<typename Id , typename... Types>
self_type & neolib::i_plugin_variant< Id, Types >::operator= ( const none_t  )
inline

Definition at line 125 of file i_plugin_variant.hpp.

◆ operator=() [2/5]

template<typename Id , typename... Types>
self_type & neolib::i_plugin_variant< Id, Types >::operator= ( const self_type &  aOther)
inline

Definition at line 97 of file i_plugin_variant.hpp.

◆ operator=() [3/5]

template<typename Id , typename... Types>
template<typename T >
std::enable_if_t<!std::is_base_of_v< self_type, T >, self_type > & neolib::i_plugin_variant< Id, Types >::operator= ( const T aArgument)
inline

Definition at line 116 of file i_plugin_variant.hpp.

◆ operator=() [4/5]

template<typename Id , typename... Types>
self_type & neolib::i_plugin_variant< Id, Types >::operator= ( self_type &&  aOther)
inline

Definition at line 104 of file i_plugin_variant.hpp.

◆ operator=() [5/5]

template<typename Id , typename... Types>
template<typename T >
std::enable_if_t<!std::is_base_of_v< self_type, std::remove_reference_t< T > >, self_type > & neolib::i_plugin_variant< Id, Types >::operator= ( T &&  aArgument)
inline

Definition at line 121 of file i_plugin_variant.hpp.

◆ operator==() [1/2]

template<typename Id , typename... Types>
bool neolib::i_plugin_variant< Id, Types >::operator== ( const none_t  ) const
inline

Definition at line 143 of file i_plugin_variant.hpp.

◆ operator==() [2/2]

template<typename Id , typename... Types>
virtual bool neolib::i_plugin_variant< Id, Types >::operator== ( const self_type &  that) const
pure virtual

◆ which()

template<typename Id , typename... Types>
virtual id_t neolib::i_plugin_variant< Id, Types >::which ( ) const
pure virtual

Friends And Related Symbol Documentation

◆ plugin_variant

template<typename Id , typename... Types>
template<typename , typename... >
friend class plugin_variant
friend

Definition at line 83 of file i_plugin_variant.hpp.


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