enum_type_data_t Struct Reference
Enum type information (see tinfo_t::get_enum_details()) More...
#include <typeinf.hpp>
Inherits qvector< T >.
Public Member Functions | |
enum_type_data_t (bte_t _bte=BTE_ALWAYS|BTE_HEX) | |
int | get_enum_radix () const |
Get enum constant radix. More... | |
bool | is_number_signed () const |
void | set_enum_radix (int radix, bool sign) |
Set radix to display constants. More... | |
bool | is_char () const |
bool | is_dec () const |
bool | is_hex () const |
bool | is_oct () const |
bool | is_bin () const |
bool | is_udec () const |
bool | is_shex () const |
bool | is_soct () const |
bool | is_sbin () const |
bool | has_lzero () const |
void | set_lzero (bool on) |
uint64 | calc_mask () const |
bool | store_64bit_values () const |
bool | is_bf () const |
is bitmask or ordinary enum? | |
int | calc_nbytes () const |
get the width of enum in bytes | |
bool | set_nbytes (int nbytes) |
set enum width (nbytes) | |
bool | get_constant_group (size_t *group_start_index, size_t *group_size, size_t idx) const |
get group parameters for the constant, valid for etimask enum More... | |
bool | is_group_mask_at (size_t idx) const |
is the enum member at IDX a non-trivial group mask? a trivial group consist of one bit and has just one member, which can be considered as a mask or a bitfield constant More... | |
bool | is_valid_group_sizes () const |
is valid group sizes | |
ssize_t | find_member (const char *name, size_t from=0, size_t to=size_t(-1)) const |
find member (constant or bmask) by name | |
ssize_t | find_member (uint64 value, uchar serial, size_t from=0, size_t to=size_t(-1), uint64 vmask=uint64(-1)) const |
find member (constant or bmask) by value | |
void | swap (enum_type_data_t &r) |
swap two instances | |
void | add_constant (const char *name, uint64 value, const char *cmt=nullptr) |
add constant for regular enum | |
tinfo_code_t | set_value_repr (const value_repr_t &repr) |
set enum radix and other representation info More... | |
Public Member Functions inherited from qvector< T > | |
qvector (void) | |
Constructor. | |
qvector (const qvector< T > &x) | |
Constructor - creates a new qvector identical to 'x'. | |
qvector (qvector< T > &&x) noexcept | |
Move constructor. | |
~qvector (void) | |
Destructor. | |
void | push_back (const T &x) |
Append a new element to the end the qvector. | |
void | push_back (T &&x) |
Append a new element to the end the qvector with a move semantics. | |
T & | push_back (void) |
Append a new empty element to the end of the qvector. More... | |
void | pop_back (void) |
Remove the last element in the qvector. | |
size_t | size (void) const |
Get the number of elements in the qvector. | |
bool | empty (void) const |
Does the qvector have 0 elements? | |
const T & | operator[] (size_t _idx) const |
Allows use of typical c-style array indexing for qvectors. | |
T & | operator[] (size_t _idx) |
Allows use of typical c-style array indexing for qvectors. | |
const T & | at (size_t _idx) const |
Get element at index '_idx'. | |
T & | at (size_t _idx) |
Get element at index '_idx'. | |
const T & | front (void) const |
Get the first element in the qvector. | |
T & | front (void) |
Get the first element in the qvector. | |
const T & | back (void) const |
Get the last element in the qvector. | |
T & | back (void) |
Get the last element in the qvector. | |
void | qclear (void) |
Destroy all elements but do not free memory. | |
void | clear (void) |
Destroy all elements and free memory. | |
qvector< T > & | operator= (const qvector< T > &x) |
Allow assignment of one qvector to another using '='. | |
qvector< T > & | operator= (qvector< T > &&x) noexcept |
Move assignment operator. | |
void | resize (size_t _newsize, const T &x) |
Resize to the given size. More... | |
void | resize (size_t _newsize) |
Same as resize(size_t, const T &), but extra space is filled with empty elements. | |
void | resize_noinit (size_t _newsize) |
void | grow (const T &x=T()) |
Add an element to the end of the qvector, which will be a new T() if x is not given. | |
size_t | capacity (void) const |
Get the number of elements that this qvector can contain - not the same as the number of elements currently in the qvector (size()) | |
void | reserve (size_t cnt) |
Increase the capacity of the qvector. More... | |
void | truncate (void) |
Shrink the capacity down to the current number of elements. | |
void | swap (qvector< T > &r) noexcept |
Replace all attributes of this qvector with that of 'r', and vice versa. More... | |
T * | extract (void) |
Empty the qvector and return a pointer to it's contents. More... | |
void | inject (T *s, size_t len) |
Populate the qvector with dynamic memory. More... | |
bool | operator== (const qvector< T > &r) const |
Allow ability to test the equality of two qvectors using '=='. | |
bool | operator!= (const qvector< T > &r) const |
Allow ability to test equality of two qvectors using '!='. | |
iterator | begin (void) |
Get an iterator that points to the first element in the qvector. | |
iterator | end (void) |
Get an iterator that points to the end of the qvector (NOT the last element) | |
const_iterator | begin (void) const |
Get a const iterator that points to the first element in the qvector. | |
const_iterator | end (void) const |
Get a const iterator that points to the end of the qvector (NOT the last element) | |
iterator | insert (iterator it, const T &x) |
Insert an element into the qvector at a specified position. More... | |
iterator | insert (iterator it, T &&x) |
Insert an element into the qvector with a move semantics. | |
template<class it2 > | |
iterator | insert (iterator it, it2 first, it2 last) |
Insert a several elements to the qvector at a specified position. More... | |
iterator | erase (iterator it) |
Remove an element from the qvector. More... | |
iterator | erase (iterator first, iterator last) |
Remove a subset of the qvector. More... | |
iterator | find (const T &x) |
Find an element in the qvector. More... | |
const_iterator | find (const T &x) const |
Find an element in the qvector. More... | |
ssize_t | index (const T &x) const |
Find index of the specified value or return -1. | |
void | add (const T &x) |
Add an element to the end of the qvector. | |
void | add (T &&x) |
bool | has (const T &x) const |
Does the qvector contain x? | |
bool | add_unique (const T &x) |
Add an element to the end of the qvector - only if it isn't already present. More... | |
bool | del (const T &x) |
Find an element and remove it. More... | |
const char * | dstr (void) const |
Public Attributes | |
intvec_t | group_sizes |
if present, specifies bitmask group sizes each non-trivial group starts with a mask member | |
uint32 | taenum_bits = 0 |
Type attributes for enums | |
bte_t | bte |
enum member sizes (shift amount) and style. More... | |
Additional Inherited Members | |
Public Types inherited from qvector< T > | |
typedef T | value_type |
the type of objects contained in this qvector | |
typedef T * | iterator |
typedef const T * | const_iterator |
Detailed Description
Enum type information (see tinfo_t::get_enum_details())
Member Function Documentation
◆ get_enum_radix()
|
inline |
Get enum constant radix.
- Returns
- radix or 1 for BTE_CHAR
◆ set_enum_radix()
|
inline |
Set radix to display constants.
- Parameters
-
radix radix with the special case 1 to display as character sign
◆ get_constant_group()
|
inline |
get group parameters for the constant, valid for etimask enum
- Parameters
-
[out] group_start_index index of the group mask [out] group_size group size (>=1) idx constant index
- Returns
- success
◆ is_group_mask_at()
|
inline |
is the enum member at IDX a non-trivial group mask? a trivial group consist of one bit and has just one member, which can be considered as a mask or a bitfield constant
- Parameters
-
idx index
- Returns
- success
◆ set_value_repr()
|
inline |
set enum radix and other representation info
- Parameters
-
repr value display info
Member Data Documentation
◆ bte
bte_t enum_type_data_t::bte |
enum member sizes (shift amount) and style.
do not manually set BTE_BITMASK, use set_enum_is_bitmask()
The documentation for this struct was generated from the following file:
Generated by 1.9.3