58 template <
typename _ValueType>
59 Variant(
const _ValueType& value)
62 msg_.openVariant(signature_of<_ValueType>::str());
68 template <
typename... _Elements>
69 Variant(
const std::variant<_Elements...>& value)
76 template <
typename _ValueType>
77 _ValueType get()
const
81 msg_.enterVariant(signature_of<_ValueType>::str());
88 template <typename _ValueType, typename = std::enable_if_t<signature_of<_ValueType>::is_valid>>
89 operator _ValueType()
const
91 return get<_ValueType>();
94 template <
typename... _Elements>
95 operator std::variant<_Elements...>()
const
97 std::variant<_Elements...> result;
103 template <
typename _Type>
104 bool containsValueOfType()
const
106 return signature_of<_Type>::str() == peekValueType();
109 bool isEmpty()
const;
111 void serializeTo(
Message& msg)
const;
112 void deserializeFrom(
Message& msg);
113 std::string peekValueType()
const;