1 #ifndef _SERIALIZE_SERIALIZABLE_HPP 2 #define _SERIALIZE_SERIALIZABLE_HPP 12 #include <yaml-cpp/yaml.h> 14 #include <metaprogramming/TypeTraits.hpp> 15 #include <metaprogramming/UniversalReferences.hpp> 16 #include <serialize/Base.hpp> 17 #include <serialize/Binarize.hpp> 18 #include <serialize/Default.hpp> 19 #include <utility/Macros.hpp> 61 template <
typename...
P>
133 #define PROVIDE_SIMPLE_FRIEND_BINARY_OPERATOR(OP) 135 template <typename O> 136 DECLAUTO friend operator
OP (O& first, 137 const Serializable& second) 140 first OP second.value; 144 #define PROVIDE_SIMPLE_BINARY_OPERATOR(OP) 146 template <typename O, 160 template <
typename O>
167 #undef PROVIDE_SIMPLE_BINARY_OPERATOR #define PROVIDE_ALL_BINARY_OPERATORS(PROVIDER)
Provides all binary operators through a simple macro.
#define PROVIDE_CRTP_CAST_OPERATOR(CLASS)
#define DEFINE_IS_THE_TEMPLATED_CLASS(CLASS)
Provides a check returning whether the class is of a given kind.
#define SFINAE_ON_TEMPLATE_ARG(...)
decltype(auto) operator+(T1 &&smet1, T2 &&smet2)
Implement smet1+smet2.
#define PROVIDE_ALSO_NON_CONST_METHOD(NAME)
#define DECLAUTO
Short name for decltype(auto)