24 template <
typename T,
typename Enabler =
void>
25 struct is_value_type_impl;
28 struct is_value_default_serializable_impl;
31 struct value_name_impl;
34 struct value_specification_impl;
36 template <
typename T,
typename Derived>
37 struct value_implementation_impl;
61 typename Specification,
62 template <
typename>
class Interface,
67 #if MAX_GNUC_VERSION(4, 8, 0)
70 template <
typename T,
typename Enabler>
71 friend struct detail::is_value_type_impl;
74 friend struct detail::is_value_default_serializable_impl;
77 friend struct detail::value_name_impl;
80 friend struct detail::value_specification_impl;
82 template <
typename T,
typename Derived>
83 friend struct detail::value_implementation_impl;
87 using serializable_value_enabler = void;
88 using serializable_value_name = Name;
89 using serializable_value_specification = Specification;
90 enum{ serializable_value_default = Default };
93 using serializable_value_implementation = Interface <T>;
105 template <
typename T>
114 template <
typename T>
124 template <
typename T>
125 using value_name =
typename detail::value_name_impl <T>::type;
134 template <
typename T>
145 template <
typename T,
typename Derived>
163 typename Specification,
164 template <
typename>
class Interface,
169 Input&& in, Output&& out);
181 typename Specification,
182 template <
typename>
class Interface,
187 Input&& in, Output&& out);
191 #include <framework/serializable/value_type.inl>