2 #include <ossia/network/dataspace/dataspace_variant_visitors.hpp>
4 #include <ossia/network/dataspace/value_with_unit.hpp>
9 template <
typename T,
typename U>
10 struct convert_unit_helper
13 operator()(
const strong_value<T>& value,
const U& unit)
15 return strong_value<U>(value);
19 struct convert_unit_visitor
21 template <
typename T,
typename U>
23 operator()(
const strong_value<T>& value,
const U& unit)
25 return convert_unit_helper<T, U>{}(value, unit);
28 template <
typename T,
typename U>
36 return ossia::apply(*
this, d1, d2);
40 return ossia::apply(*
this, d1, d2);
43 operator()(
const distance& d1,
const distance_u& d2)
45 return ossia::apply(*
this, d1, d2);
48 operator()(
const orientation& d1,
const orientation_u& d2)
50 return ossia::apply(*
this, d1, d2);
54 return ossia::apply(*
this, d1, d2);
57 operator()(
const position& d1,
const position_u& d2)
59 return ossia::apply(*
this, d1, d2);
63 return ossia::apply(*
this, d1, d2);
67 return ossia::apply(*
this, d1, d2);
71 struct convert_to_value_visitor
75 return ossia::apply(*
this, d1);
79 return ossia::apply(*
this, d1);
83 return ossia::apply(*
this, d1);
85 OSSIA_INLINE
ossia::value operator()(
const orientation& d1)
87 return ossia::apply(*
this, d1);
91 return ossia::apply(*
this, d1);
95 return ossia::apply(*
this, d1);
99 return ossia::apply(*
this, d1);
103 return ossia::apply(*
this, d1);
106 template <
typename T>
107 OSSIA_INLINE
ossia::value operator()(
const strong_value<T>& val)
109 return val.dataspace_value;
117 struct convert_to_unit_visitor
121 return ossia::apply(*
this, d1);
125 return ossia::apply(*
this, d1);
129 return ossia::apply(*
this, d1);
133 return ossia::apply(*
this, d1);
137 return ossia::apply(*
this, d1);
141 return ossia::apply(*
this, d1);
145 return ossia::apply(*
this, d1);
149 return ossia::apply(*
this, d1);
152 template <
typename T>
155 return typename T::unit_type{};
The value class.
Definition: value.hpp:173
Definition: transitive_closure.hpp:27
Definition: dataspace.hpp:24
Definition: value_with_unit.hpp:13