67 and use_boost_describe_v<T> )
71 boost::describe::describe_members<T, boost::describe::mod_public>;
73 boost::describe::describe_members<T, boost::describe::mod_private>;
75 boost::describe::describe_members<T, boost::describe::mod_protected>;
76 static_assert( boost::mp11::mp_empty<pri_desc_t>::value,
77 "Classes with private member variables are not supported. "
78 "Must use a manual mapping." );
79 static_assert( boost::mp11::mp_empty<pro_desc_t>::value,
80 "Classes with protected member variables are not supported. "
81 "Must use a manual mapping." );
84 using desc_t =
typename describe_impl::describe_member<U>::type;
86 template<
template<
typename...>
typename List,
typename... Ts>
87 static inline constexpr auto
88 to_json_data_impl( T
const &value, List<Ts...>
const & )
noexcept {
89 return std::forward_as_tuple( value.*Ts::pointer... );
93 using type =
typename describe_impl::member_list<pub_desc_t>::type;
95 static constexpr auto to_json_data( T
const &value )
noexcept {
96 return to_json_data_impl( value, pub_desc_t{ } );