3 #include "find_reflection_handler.h"
4 #include <cgv/config/cpp_version.h>
16 std::string value_type;
21 const std::string& _value_type,
27 void process_member_void(
const std::string& member_name,
void* member_ptr,
31 #ifdef REFLECT_TRAITS_WITH_DECLTYPE
37 template <
typename T,
typename Q>
38 bool get_member(T& variable,
const std::string& target, Q& value) {
41 namespace compatibility {
42 template <
typename T,
typename Q,
typename RQ>
43 bool get_member_impl(T& variable,
const std::string& target, Q& value, RQ&) {
47 grh.reflect_member(
"", variable);
48 return grh.found_valid_target();
50 #ifndef REFLECT_TRAITS_WITH_DECLTYPE
51 template <
bool use_get,
typename T,
typename Q>
52 struct get_member_dispatch {
static bool get_member(T& variable,
const std::string& target, Q& value) {
53 return get_member_impl(variable, target, value, reflection_traits<Q>()); } };
54 template <
typename T,
typename Q>
55 struct get_member_dispatch<true,T,Q> {
static bool get_member(T& variable,
const std::string& target, Q& value) {
56 return get_member_impl(variable, target, value, get_reflection_traits(value)); } };
64 template <
typename T,
typename Q>
65 bool get_member(T& variable,
const std::string& target, Q& value)
67 return compatibility::get_member_dispatch<reflection_traits_info<Q>::use_get,T,Q>
::get_member(variable, target, value);
73 #include <cgv/config/lib_end.h>