1 #ifndef _SERIALIZE_DEFAULT_HPP 2 #define _SERIALIZE_DEFAULT_HPP 8 #include <metaprogramming/UniversalReferences.hpp> 9 #include <serialize/Base.hpp> 25 class SerializableDefaultValue;
29 class SerializableDefaultValue<T,
true>
38 template <
typename...TDef>
47 (*
static_cast<Serializable<T>*>(
this))()=
54 class SerializableDefaultValue<T,
false>
66 (*
static_cast<Serializable<T>*>(
this))()=
SerializableDefaultValue(const T={})
Construct doing nothing.
#define DEFINE_HAS_MEMBER(TAG)
const T def
Default value stored.
SerializableDefaultValue(TDef &&...def)
Store the default value.
constexpr bool ONLY_NON_DEFAULT
Mark to print only non-default.
void putToDefault()
Put to default.
void putToDefault()
Put to default.
decltype(auto) operator+(T1 &&smet1, T2 &&smet2)
Implement smet1+smet2.