17 namespace protocol_buffers
21 template <
typename T,
typename Enabler =
void>
22 struct is_field_type_impl;
25 struct field_number_impl;
28 struct field_type_impl;
31 struct is_required_impl;
34 struct is_repeated_impl;
37 struct is_optional_impl;
53 template <
typename Type,
typename Number>
57 #if MAX_GNUC_VERSION(4, 8, 0)
60 template <
typename T,
typename Enabler>
61 friend struct detail::is_field_type_impl;
64 friend struct detail::field_number_impl;
67 friend struct detail::field_type_impl;
71 using protocol_buffers_field_enabler = void;
72 using protocol_buffers_field_number = Number;
73 using protocol_buffers_field_type = Type;
86 using is_required =
typename detail::is_required_impl <T>::type;
92 using is_optional =
typename detail::is_optional_impl <T>::type;
98 using is_repeated =
typename detail::is_repeated_impl <T>::type;
103 template <
typename T>
109 template <
typename T>
110 using field_type =
typename detail::field_type_impl <T>::type;
118 template <
typename Lhs,
typename Rhs>
127 template <u
int64_t Number>
130 template <
typename T>
132 typename std::conditional <
141 #include <framework/protocol_buffers/field_type.inl>