liblcf
|
#include <enum_tags.h>
Public Types | |
using | int_type = typename std::make_signed< typename std::underlying_type< E >::type >::type |
using | iterator = char const *const * |
using | reverse_iterator = std::reverse_iterator< iterator > |
Public Member Functions | |
template<size_t... LN> | |
constexpr | EnumTags (const char(&...literals)[LN]) |
constexpr const char * | tag (E etag) const |
constexpr const char * | tag (int_type idx) const |
constexpr const char * | operator[] (E etag) const |
constexpr const char * | operator[] (int_type idx) const |
bool | etag (const char *tag, E &result) const |
E | etagOr (const char *tag, E other) const |
int_type | idx (const char *tag) const |
const std::array< const char *, num_tags > & | tags () const |
constexpr iterator | begin () const |
constexpr iterator | end () const |
constexpr iterator | cbegin () const |
constexpr iterator | cend () const |
reverse_iterator | rbegin () const |
reverse_iterator | rend () const |
Static Public Member Functions | |
static constexpr size_t | size () |
Static Public Attributes | |
static constexpr size_t | num_tags = N |
Private Attributes | |
const std::array< const char *, num_tags > | _tags |
Definition at line 20 of file enum_tags.h.
using EnumTags< E, N >::int_type = typename std::make_signed<typename std::underlying_type<E>::type>::type |
Definition at line 23 of file enum_tags.h.
Definition at line 24 of file enum_tags.h.
using EnumTags< E, N >::reverse_iterator = std::reverse_iterator<iterator> |
Definition at line 25 of file enum_tags.h.
|
inlineexplicitconstexpr |
Definition at line 28 of file enum_tags.h.
|
inlineconstexpr |
Definition at line 42 of file enum_tags.h.
References EnumTags< E, N >::_tags.
Referenced by EnumTags< E, N >::cbegin(), and EnumTags< E, N >::rend().
|
inlineconstexpr |
Definition at line 45 of file enum_tags.h.
References EnumTags< E, N >::begin().
Definition at line 46 of file enum_tags.h.
References EnumTags< E, N >::end().
Definition at line 43 of file enum_tags.h.
References EnumTags< E, N >::_tags, and EnumTags< E, N >::size().
Referenced by EnumTags< E, N >::cend(), and EnumTags< E, N >::rbegin().
|
inline |
Definition at line 73 of file enum_tags.h.
Referenced by EnumTags< E, N >::operator[](), and EnumTags< E, N >::tag().
|
inline |
Definition at line 83 of file enum_tags.h.
|
inline |
Definition at line 63 of file enum_tags.h.
Referenced by EnumTags< E, N >::operator[](), and EnumTags< E, N >::tag().
|
inlineconstexpr |
Definition at line 33 of file enum_tags.h.
References EnumTags< E, N >::etag(), and EnumTags< E, N >::tag().
|
inlineconstexpr |
Definition at line 34 of file enum_tags.h.
References EnumTags< E, N >::idx(), and EnumTags< E, N >::tag().
|
inline |
Definition at line 48 of file enum_tags.h.
References EnumTags< E, N >::end().
|
inline |
Definition at line 49 of file enum_tags.h.
References EnumTags< E, N >::begin().
|
inlinestaticconstexpr |
Definition at line 51 of file enum_tags.h.
References EnumTags< E, N >::num_tags.
Referenced by EnumTags< E, N >::end().
|
inlineconstexpr |
Definition at line 30 of file enum_tags.h.
References EnumTags< E, N >::etag(), and EnumTags< E, N >::tag().
Referenced by EnumTags< E, N >::operator[](), and EnumTags< E, N >::tag().
|
inlineconstexpr |
Definition at line 31 of file enum_tags.h.
References EnumTags< E, N >::_tags, and EnumTags< E, N >::idx().
|
inline |
Definition at line 40 of file enum_tags.h.
References EnumTags< E, N >::_tags.
|
private |
Definition at line 54 of file enum_tags.h.
Referenced by EnumTags< E, N >::begin(), EnumTags< E, N >::end(), EnumTags< E, N >::tag(), and EnumTags< E, N >::tags().
|
staticconstexpr |
Definition at line 22 of file enum_tags.h.
Referenced by EnumTags< E, N >::size().