8 void to_variant(
const T& o, variant& v, uint32_t max_depth );
10 void from_variant(
const variant& v, T& o, uint32_t max_depth );
18 :vo(mvo),val(v),_max_depth(max_depth - 1) {
19 _FC_ASSERT( max_depth > 0,
"Recursion depth exceeded!" );
22 template<
typename Member,
class Class, Member (Class::*member)>
25 this->add(vo,name,(val.*member));
33 vo(name,
variant( *v, _max_depth ));
36 void add( mutable_variant_object& vo,
const char* name,
const M& v )
const
37 { vo(name, variant( v, _max_depth )); }
39 mutable_variant_object& vo;
41 const uint32_t _max_depth;
50 _FC_ASSERT( max_depth > 0,
"Recursion depth exceeded!" );
53 template<
typename Member,
class Class, Member (Class::*member)>
66 template<
typename T,
typename Dummy =
void>
69 struct if_enum<T,
std::enable_if_t<!std::is_enum<T>::value>>
85 struct if_enum<T,
std::enable_if_t<std::is_enum<T>::value>>