20 inline bool operator == (
const Variant& var)
const {
return var.val == val; }
21 inline bool operator != (
const Variant& var)
const {
return !(*
this == var); }
26 inline T&
get() {
return std::get<T>(val); }
32 inline void set(
const T& value) { val = value; }
37 inline bool is_type() {
return std::holds_alternative<T>(val); }
41 inline bool &
get_bool() {
return std::get<bool>(val); }
42 inline int8_t &get_int8() {
return std::get<int8_t>(val); }
43 inline int16_t &get_int16() {
return std::get<int16_t>(val); }
44 inline int32_t &get_int32() {
return std::get<int32_t>(val); }
45 inline int64_t &get_int64() {
return std::get<int64_t>(val); }
46 inline uint8_t &get_uint8() {
return std::get<uint8_t>(val); }
47 inline uint16_t &get_uint16() {
return std::get<uint16_t>(val); }
48 inline uint32_t &get_uint32() {
return std::get<uint32_t>(val); }
49 inline uint64_t &get_uint64() {
return std::get<uint64_t>(val); }
50 inline float &get_float() {
return std::get<float>(val); }
51 inline double &get_double() {
return std::get<double>(val); }
52 inline std::string &get_string() {
return std::get<std::string>(val); }
56 inline void set(
bool value) { set<bool>(value); }
57 inline void set(int8_t value) { set<int8_t>(value); }
58 inline void set(int16_t value) { set<int16_t>(value); }
59 inline void set(int32_t value) { set<int32_t>(value); }
60 inline void set(int64_t value) { set<int64_t>(value); }
61 inline void set(uint8_t value) { set<uint8_t>(value); }
62 inline void set(uint16_t value) { set<uint16_t>(value); }
63 inline void set(uint32_t value) { set<uint32_t>(value); }
64 inline void set(uint64_t value) { set<uint64_t>(value); }
65 inline void set(
float value) { set<float>(value); }
66 inline void set(
double value) { set<double>(value); }
67 inline void set(
const std::string& value) { set<std::string>(value); }
72 return std::holds_alternative<std::monostate>(val);
74 inline bool is_bool() {
return is_type<bool>(); }
75 inline bool is_int8() {
return is_type<int8_t>(); }
76 inline bool is_int16() {
return is_type<int16_t>(); }
77 inline bool is_int32() {
return is_type<int32_t>(); }
78 inline bool is_int64() {
return is_type<int64_t>(); }
79 inline bool is_uint8() {
return is_type<uint8_t>(); }
80 inline bool is_uint16() {
return is_type<uint16_t>(); }
81 inline bool is_uint32() {
return is_type<uint32_t>(); }
82 inline bool is_uint64() {
return is_type<uint64_t>(); }
83 inline bool is_float() {
return is_type<float>(); }
84 inline bool is_double() {
return is_type<double>(); }
85 inline bool is_string() {
return is_type<std::string>(); }
90 return is_int8() || is_int16() || is_int32() || is_int64();
96 return is_uint8() || is_uint16() || is_uint32() || is_uint64();
102 return is_float() || is_double();
108 if (is_int8())
return get_int8();
109 if (is_int16())
return get_int16();
110 if (is_int32())
return get_int32();
117 if (is_uint8())
return get_uint8();
118 if (is_uint16())
return get_uint16();
119 if (is_uint32())
return get_uint32();
126 if (is_float())
return get_float();
140 std::vector<uint8_t>,
141 std::vector<int16_t>,
142 std::vector<uint16_t>,
143 std::vector<int32_t>,
144 std::vector<uint32_t>,
145 std::vector<int64_t>,
146 std::vector<uint64_t>
Definition: variant.hpp:18
double as_real()
Getting real value (float or double)
Definition: variant.hpp:125
void set(bool value)
List of setters for each variant type.
Definition: variant.hpp:56
void set(const T &value)
template to set value
Definition: variant.hpp:32
bool is_int()
Test if value is signed integer (int8, int16, int32, int64).
Definition: variant.hpp:89
uint64_t as_uint()
Getting unsigned value.
Definition: variant.hpp:116
bool undefined()
Definition: variant.hpp:71
bool & get_bool()
List of getters for each variant type.
Definition: variant.hpp:41
int64_t as_int()
Getting signed value.
Definition: variant.hpp:107
bool is_uint()
Test if value is unsigned integer (uint8, uint16, uint32, uint64).
Definition: variant.hpp:95
bool is_real()
Test if value is real (float pr double).
Definition: variant.hpp:101
bool is_type()
Template to check type of variant.
Definition: variant.hpp:37
T & get()
template to get value
Definition: variant.hpp:26