Go to the documentation of this file.
25 #ifndef TESSERACT_COMMON_SERIALIZATION_EXTENSIONS_H
26 #define TESSERACT_COMMON_SERIALIZATION_EXTENSIONS_H
30 #include <boost/mpl/string.hpp>
39 namespace serialization::xml
50 using extension_type =
typename boost::mpl::eval_if<has_member_extension_type<T>,
52 boost::mpl::string<
'.',
't',
'r',
's',
'x'>>::type;
54 static constexpr
const char*
value = boost::mpl::c_str<extension::extension_type>::value;
58 namespace serialization::binary
69 using extension_type =
typename boost::mpl::eval_if<has_member_extension_type<T>,
71 boost::mpl::string<
'.',
't',
'r',
's',
'b'>>::type;
73 static constexpr
const char*
value = boost::mpl::c_str<extension::extension_type>::value;
85 #define TESSERACT_CLASS_EXTENSION(T, X, B) \
86 namespace tesseract_common \
88 namespace serialization::xml \
93 static constexpr const char* value = X; \
94 static_assert(value[0] == '.', "XML extension value must start with a '.'"); \
97 namespace serialization::binary \
100 struct extension<T> \
102 static constexpr const char* value = B; \
103 static_assert(value[0] == '.', "Binary extension value must start with a '.'"); \
108 #endif // TESSERACT_COMMON_SERIALIZATION_EXTENSIONS_H
typename boost::mpl::eval_if< has_member_extension_type< T >, traits_class_extension< T >, boost::mpl::string<'.', 't', 'r', 's', 'b'> >::type extension_type
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
typename boost::mpl::eval_if< has_member_extension_type< T >, traits_class_extension< T >, boost::mpl::string<'.', 't', 'r', 's', 'x'> >::type extension_type
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH TESSERACT_COMMON_IGNORE_WARNINGS_POP CREATE_MEMBER_CHECK(extension_type)
typename U::extenstion extension_type
#define TESSERACT_COMMON_IGNORE_WARNINGS_POP
static constexpr const char * value
static constexpr const char * value
typename U::extenstion extension_type
tesseract_common
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:40