28 #ifndef __RTTR_ACCESSOR_TYPE_H__
29 #define __RTTR_ACCESSOR_TYPE_H__
35 #include <type_traits>
43 struct member_func_ptr
45 typedef member_func_ptr type;
50 typedef function_ptr type;
53 struct member_object_ptr
55 typedef member_object_ptr type;
60 typedef object_ptr type;
64 struct property_type : std::conditional<std::is_member_function_pointer<T>::value,
66 typename std::conditional<std::is_member_object_pointer<T>::value,
68 typename std::conditional<is_function_ptr<T>::value || is_std_function<T>::value,
70 typename std::conditional<std::is_pointer<T>::value,
84 struct void_member_func
86 typedef void_member_func type;
89 struct return_member_func
91 typedef return_member_func type;
96 typedef void_func type;
101 typedef return_func type;
105 struct method_type : std::conditional<std::is_member_function_pointer<T>::value,
106 typename std::conditional<is_void_func<T>::value,
110 typename std::conditional<is_function_ptr<T>::value || is_std_function<T>::value,
111 typename std::conditional<is_void_func<T>::value,
124 #endif // __RTTR_ACCESSOR_TYPE_H__