![]() |
Kea
1.9.9-git
|
A buffer to store and retrieve objects. More...
#include <parser.h>
Public Types | |
typedef semantic_type | self_type |
Type of *this. More... | |
Public Member Functions | |
semantic_type () YY_NOEXCEPT | |
Empty construction. More... | |
template<typename T > | |
semantic_type (YY_RVREF(T) t) | |
Construct and fill. More... | |
~semantic_type () YY_NOEXCEPT | |
Destruction, allowed only if empty. More... | |
template<typename T > | |
T & | as () YY_NOEXCEPT |
Accessor to a built T. More... | |
template<typename T > | |
const T & | as () const YY_NOEXCEPT |
Const accessor to a built T (for printer). More... | |
template<typename T > | |
T & | build () |
Instantiate an empty T in here. More... | |
template<typename T > | |
T & | build (const T &t) |
Instantiate a T in here from t. More... | |
template<typename T > | |
void | copy (const self_type &that) |
Copy the content of that to this. More... | |
template<typename T > | |
void | destroy () |
Destroy the stored T. More... | |
template<typename T > | |
T & | emplace () |
Instantiate an empty T in here. More... | |
template<typename T > | |
T & | emplace (const T &t) |
Instantiate a T in here from t. More... | |
template<typename T > | |
void | move (self_type &that) |
Move the content of that to this. More... | |
template<typename T > | |
void | swap (self_type &that) YY_NOEXCEPT |
Swap the content with that, of same type. More... | |
A buffer to store and retrieve objects.
Sort of a variant, but does not keep track of the nature of the stored data, since that knowledge is available via the current parser state.
|
inline |
|
inline |
|
inline |
Destruction, allowed only if empty.
Definition at line 246 of file parser.h.
References EVAL_ASSERT.
|
inline |
|
inline |
Const accessor to a built T (for printer).
Definition at line 318 of file parser.h.
References EVAL_ASSERT.
|
inline |
|
inline |
|
inline |
Copy the content of that to this.
Definition at line 373 of file parser.h.
References as().
Referenced by isc::eval::EvalParser::basic_symbol< Base >::basic_symbol().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Swap the content with that, of same type.
Both variants must be built beforehand, because swapping the actual data requires reading it (with as()), and this is not possible on unconstructed variants: it would require some dynamic testing, which should not be the variant's responsibility. Swapping between built and (possibly) non-built is done with self_type::move ().
Definition at line 336 of file parser.h.
References EVAL_ASSERT.
long double isc::eval::EvalParser::semantic_type::yyalign_me |
char isc::eval::EvalParser::semantic_type::yyraw[size] |