The enumeration class provides several meta information about an enum. More...
#include <enumeration.h>
| Public Member Functions | |
| type | get_declaring_type () const noexcept | 
| Returns the type of the class or struct that declares this enumeration.  More... | |
| variant | get_metadata (const variant &key) const | 
| Returns the meta data for the given key key.  More... | |
| string_view | get_name () const noexcept | 
| Returns the declared name of this enumeration.  More... | |
| array_range< string_view > | get_names () const noexcept | 
| Returns all enum names registered for this enumeration.  More... | |
| type | get_type () const noexcept | 
| Returns the type object of this enumeration.  More... | |
| type | get_underlying_type () const noexcept | 
| Returns the underlying type (int, unsigned int, etc.) of this enumeration.  More... | |
| array_range< variant > | get_values () const noexcept | 
| Returns all enum values registered for this enumeration.  More... | |
| bool | is_valid () const noexcept | 
| Returns true if this enumeration is valid, otherwise false.  More... | |
| variant | name_to_value (string_view name) const | 
| Returns the value of the given enumeration name, or an empty variant if the name is not defined.  More... | |
| operator bool () const noexcept | |
| Convenience function to check if this enumeration is valid or not.  More... | |
| bool | operator!= (const enumeration &other) const noexcept | 
| Returns true if this enumeration is the not the same like the other.  More... | |
| bool | operator== (const enumeration &other) const noexcept | 
| Returns true if this enumeration is the same like the other.  More... | |
| string_view | value_to_name (argument value) const | 
| Returns the string_view that is used as the name of the given enumeration value, or an empty string_view if thevalueis not defined.  More... | |
Detailed Description
The enumeration class provides several meta information about an enum.
A instance of an enumeration class can only be obtained from the type class or the property class. See type::get_enumeration() and property::get_enumeration().
For registration an enum, nested inside a class, see registration::class_<T>::enumeration() and for global enums see registration::enumeration().
Meta Information
An enumeration is described by it's declared name (get_name()), it's enumerator names (get_names()) and it's corresponding constant values (get_values()). The name is represented as string_view and the values are stored as the underlying enum value. When the enumeration was declared inside a class, then get_declaring_type() can be used to obtain the type of this class.
The conversion functions name_to_value(), value_to_name() allow conversion between the value representation of an enumeration and its literal representation.
Copying and Assignment
A enumeration object is lightweight and can be copied by value. However, each copy will refer to the same underlying enumeration.
Typical Usage
- See also
- method, property, constructor and type
Member Function Documentation
| 
 | noexcept | 
Returns the type of the class or struct that declares this enumeration.
- Remarks
- When this enumeration does not belong to a class (i.e. is a global enumeration) it will return an invalid type object. When this enumeration is not valid, this function will return an invalid type object (see type::is_valid).
- Returns
- Type of the declaring class/struct for this enumeration.
Returns the meta data for the given key key. 
- Remarks
- When no meta data is registered with the given key, an invalid variant object is returned (see variant::is_valid).
- Returns
- A variant object, containing arbitrary data.
| 
 | noexcept | 
Returns the declared name of this enumeration.
- Returns
- Name of the enumeration.
| 
 | noexcept | 
Returns all enum names registered for this enumeration.
- Remarks
- When the enumeration is invalid then an empty range is returned.
- Returns
- A range of enumeration names.
| 
 | noexcept | 
Returns the type object of this enumeration.
- Returns
- Data type of the enumeration.
| 
 | noexcept | 
Returns the underlying type (int, unsigned int, etc.) of this enumeration.
- Returns
- Data type of the enumeration.
| 
 | noexcept | 
Returns all enum values registered for this enumeration.
- Remarks
- When the enumeration is invalid then an empty range is returned.
- Returns
- A range of enumeration values.
| 
 | noexcept | 
Returns true if this enumeration is valid, otherwise false.
- Returns
- True if this enumeration is valid, otherwise false.
| variant rttr::enumeration::name_to_value | ( | string_view | name | ) | const | 
Returns the value of the given enumeration name, or an empty variant if the name is not defined. 
- Returns
- A variant object, containing the value for the given name.
| 
 | explicitnoexcept | 
Convenience function to check if this enumeration is valid or not.
- Returns
- True if this enumeration is valid, otherwise false.
| 
 | noexcept | 
Returns true if this enumeration is the not the same like the other. 
- Returns
- True if both enumerations are different, otherwise false.
| 
 | noexcept | 
Returns true if this enumeration is the same like the other. 
- Returns
- True if both enumerations are equal, otherwise false.
| string_view rttr::enumeration::value_to_name | ( | argument | value | ) | const | 
Returns the string_view that is used as the name of the given enumeration value, or an empty string_view if the value is not defined. 
- Returns
- A string_view object, containing the name for the given value.
The documentation for this class was generated from the following file: