|
result_type | operator() () const |
| Visit an empty variant (don't override this, instead override visitEmpty) More...
|
|
result_type | visitEmpty () const |
| Visit an empty variant. More...
|
|
result_type | operator() (int64_t &i) const |
| Visit an integer (don't override this, instead override visitInteger) More...
|
|
result_type | visitInteger (int64_t &i) const |
| Visit an integer. More...
|
|
result_type | operator() (double &i) const |
| Visit a double (don't override this, instead override visitDouble) More...
|
|
result_type | visitDouble (double &i) const |
| Visit a double. More...
|
|
result_type | operator() (bool &i) const |
| Visit a boolean (don't override this, instead override visitBoolean) More...
|
|
result_type | visitBoolean (bool &i) const |
| Visit a boolean. More...
|
|
result_type | operator() (const char *&i) const |
| Visit a string (don't override this, instead override visitString) More...
|
|
result_type | visitString (const char *&i) const |
| Visit a string. More...
|
|
result_type | operator() (decimal_t &i) const |
| Visit a decimal (don't override this, instead override visitDecimal) More...
|
|
result_type | visitDecimal (decimal_t &i) const |
| Visit a decimal. More...
|
|
result_type | operator() (buffer_t &i) const |
| Visit a byte buffer (don't override this, instead override visitBuffer) More...
|
|
result_type | visitBuffer (buffer_t &i) const |
| Visit a byte buffer. More...
|
|
result_type | operator() (list_t &i) const |
| Visit a list (don't override this, instead override visitList) More...
|
|
result_type | visitList (list_t &i) const |
| Visit a list. More...
|
|
result_type | operator() (map_t &i) const |
| Visit a map (don't override this, instead override visitMap) More...
|
|
result_type | visitMap (map_t &i) const |
| Visit a map. More...
|
|
result_type | operator() (sag_underlying_custom_t &i) const |
| Visit a custom object (don't override this, instead override visitCustom) More...
|
|
result_type | visitCustom (sag_underlying_custom_t &i) const |
| Visit a custom object. More...
|
|
template<typename DERIVED, typename RV>
class visitor< DERIVED, RV >
Helper class for writing visitors to apply to data_t.
This class provides the result_type typedef and all the operator()() methods and should be used for visiting non-const data_ts. For visiting const data_ts then you need to use const_visitor
These then call to visitTYPE methods which default to an error condition.
Users should override the visitTYPE(TYPE&) const methods for the types which their visitor needs to handle. Unhandled types will still default to error.
The default error condition is to throw std::runtime_error. If you wish to have a different error condition then override the error() method.
This class is templated over both the derived class (to avoid the need for virtual calls) and the return type. It should be used as:
class my_visitor: public visitor<my_visitor, void> { ... };