neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
neolib::i_basic_enum< UnderlyingType > Class Template Referenceabstract

#include <i_enum.hpp>

Inheritance diagram for neolib::i_basic_enum< UnderlyingType >:
neolib::i_reference_counted

Classes

struct  bad_enum_string
 

Public Types

typedef self_type abstract_type
 
typedef UnderlyingType underlying_type
 
typedef i_multimap< underlying_type, i_stringenumerators_t
 

Public Member Functions

ref_ptr< self_type > clone () const
 
self_type & operator= (const self_type &aRhs)
 
bool operator== (const self_type &that) const
 
std::strong_ordering operator<=> (const self_type &that) const
 
virtual underlying_type value () const =0
 
virtual void set_value (underlying_type aValue)=0
 
virtual underlying_type set_value (const i_string &aValue)=0
 
virtual underlying_type constdata () const =0
 
virtual underlying_typedata ()=0
 
virtual void to_string (i_string &aString) const =0
 
string to_string () const
 
std::string to_std_string () const
 
virtual const enumerators_tenumerators () const =0
 
template<typename Enum >
Enum value () const
 
template<typename Enum >
void set_value (Enum aValue)
 
template<typename Enum >
Enum set_value (const std::string &aValue)
 
- 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
 

Detailed Description

template<typename UnderlyingType>
class neolib::i_basic_enum< UnderlyingType >

Definition at line 143 of file i_enum.hpp.

Member Typedef Documentation

◆ abstract_type

typedef self_type neolib::i_basic_enum< UnderlyingType >::abstract_type

Definition at line 151 of file i_enum.hpp.

◆ enumerators_t

◆ underlying_type

Definition at line 152 of file i_enum.hpp.

Member Function Documentation

◆ clone()

ref_ptr< self_type > neolib::i_basic_enum< UnderlyingType >::clone ( ) const
inline

Definition at line 156 of file i_enum.hpp.

◆ data() [1/2]

◆ data() [2/2]

◆ enumerators()

virtual const enumerators_t & neolib::i_basic_enum< UnderlyingType >::enumerators ( ) const
pure virtual

Implemented in neolib::basic_enum< Enum >.

◆ operator<=>()

std::strong_ordering neolib::i_basic_enum< UnderlyingType >::operator<=> ( const self_type &  that) const
inline

Definition at line 170 of file i_enum.hpp.

◆ operator=()

self_type & neolib::i_basic_enum< UnderlyingType >::operator= ( const self_type &  aRhs)
inline

Definition at line 160 of file i_enum.hpp.

◆ operator==()

bool neolib::i_basic_enum< UnderlyingType >::operator== ( const self_type &  that) const
inline

Definition at line 166 of file i_enum.hpp.

◆ set_value() [1/4]

virtual underlying_type neolib::i_basic_enum< UnderlyingType >::set_value ( const i_string aValue)
pure virtual

Implemented in neolib::basic_enum< Enum >.

◆ set_value() [2/4]

template<typename Enum >
Enum neolib::i_basic_enum< UnderlyingType >::set_value ( const std::string &  aValue)
inline

Definition at line 204 of file i_enum.hpp.

◆ set_value() [3/4]

template<typename Enum >
void neolib::i_basic_enum< UnderlyingType >::set_value ( Enum  aValue)
inline

Definition at line 199 of file i_enum.hpp.

◆ set_value() [4/4]

virtual void neolib::i_basic_enum< UnderlyingType >::set_value ( underlying_type  aValue)
pure virtual

Implemented in neolib::basic_enum< Enum >.

◆ to_std_string()

std::string neolib::i_basic_enum< UnderlyingType >::to_std_string ( ) const
inline

Definition at line 185 of file i_enum.hpp.

◆ to_string() [1/2]

string neolib::i_basic_enum< UnderlyingType >::to_string ( ) const
inline

Definition at line 184 of file i_enum.hpp.

◆ to_string() [2/2]

virtual void neolib::i_basic_enum< UnderlyingType >::to_string ( i_string aString) const
pure virtual

Implemented in neolib::basic_enum< Enum >.

◆ value() [1/2]

template<typename Enum >
Enum neolib::i_basic_enum< UnderlyingType >::value ( ) const
inline

Definition at line 194 of file i_enum.hpp.

◆ value() [2/2]


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