60 template <
typename _ValueType>
63 msg_.openVariant<_ValueType>();
69 template <
typename... _Elements>
70 Variant(
const std::variant<_Elements...>& value)
77 template <
typename _ValueType>
78 _ValueType get()
const
83 msg_.enterVariant<_ValueType>();
90 template <typename _ValueType, typename = std::enable_if_t<signature_of<_ValueType>::is_valid>>
91 explicit operator _ValueType()
const
93 return get<_ValueType>();
96 template <
typename... _Elements>
97 operator std::variant<_Elements...>()
const
99 std::variant<_Elements...> result;
105 template <
typename _Type>
106 bool containsValueOfType()
const
108 constexpr auto signature = as_null_terminated(signature_of_v<_Type>);
109 return std::strcmp(signature.data(), peekValueType()) == 0;
112 bool isEmpty()
const;
114 void serializeTo(
Message& msg)
const;
115 void deserializeFrom(
Message& msg);
116 const char* peekValueType()
const;