28 #ifndef __RTTR_REGISTER_REFLECTION_H__
29 #define __RTTR_REGISTER_REFLECTION_H__
128 template<
typename ClassType>
132 class_(std::vector< rttr::metadata > data = std::vector< rttr::metadata >());
142 template<
typename... Args>
143 class_&
constructor(std::vector< rttr::metadata > data = std::vector< rttr::metadata >());
171 class_&
property(
const std::string& name, A acc, std::vector< rttr::metadata > data);
184 template<
typename A,
typename Policy>
185 class_&
property(
const std::string& name, A acc,
const Policy& policy,
187 typename std::enable_if<detail::contains<Policy, detail::policy_list>::value>::
type* =
nullptr
204 template<
typename A,
typename Policy>
205 class_&
property(
const std::string& name, A acc, std::vector< rttr::metadata > data,
const Policy& policy);
220 template<
typename A1,
typename A2>
223 typename std::enable_if<!detail::contains<A2, detail::policy_list>::value>::
type* =
nullptr
242 template<
typename A1,
typename A2>
243 class_&
property(
const std::string& name, A1 getter, A2 setter, std::vector< rttr::metadata > data);
259 template<
typename A1,
typename A2,
typename Policy>
260 class_&
property(
const std::string& name, A1 getter, A2 setter,
const Policy& policy);
277 template<
typename A1,
typename A2,
typename Policy>
278 class_&
property(
const std::string& name, A1 getter, A2 setter, std::vector< rttr::metadata > data,
const Policy& policy);
323 template<
typename A,
typename Policy>
339 template<
typename A,
typename Policy>
340 class_&
property_readonly(
const std::string& name, A acc, std::vector< rttr::metadata > data,
const Policy& policy);
370 class_&
method(
const std::string& name, F
function, std::vector< rttr::metadata > data);
383 template<
typename F,
typename Policy>
384 class_&
method(
const std::string& name, F
function,
const Policy& policy);
398 template<
typename F,
typename Policy>
399 class_&
method(
const std::string& name, F
function, std::vector< rttr::metadata > data,
const Policy& policy);
411 template<
typename EnumType>
413 std::vector< rttr::metadata > data = std::vector< rttr::metadata >());
432 void constructor_(std::vector< rttr::metadata > data = std::vector< rttr::metadata >());
443 void property_(
const std::string& name, A acc);
455 void property_(
const std::string& name, A acc, std::vector< rttr::metadata > data);
466 template<
typename A,
typename Policy>
467 void property_(
const std::string& name, A acc,
const Policy& policy,
469 typename std::enable_if<detail::contains<Policy, detail::policy_list>::value>::
type* =
nullptr
483 template<
typename A,
typename Policy>
484 void property_(
const std::string& name, A acc, std::vector< rttr::metadata > data,
const Policy& policy);
495 template<
typename A1,
typename A2>
496 void property_(
const std::string& name, A1 getter, A2 setter,
498 typename std::enable_if<!detail::contains<A2, detail::policy_list>::value>::
type* =
nullptr
512 template<
typename A1,
typename A2>
513 void property_(
const std::string& name, A1 getter, A2 setter, std::vector< rttr::metadata > data);
525 template<
typename A1,
typename A2,
typename Policy>
526 void property_(
const std::string& name, A1 getter, A2 setter,
const Policy& policy);
539 template<
typename A1,
typename A2,
typename Policy>
540 void property_(
const std::string& name, A1 getter, A2 setter,
542 std::vector< rttr::metadata > data,
const Policy& policy
574 void property_readonly_(
const std::string& name, A acc, std::vector< rttr::metadata > data);
588 template<
typename A,
typename Policy>
604 template<
typename A,
typename Policy>
605 void property_readonly_(
const std::string& name, A acc, std::vector< rttr::metadata > data,
const Policy& policy);
618 void method_(
const std::string& name, F
function);
632 void method_(
const std::string& name, F
function, std::vector< rttr::metadata > data);
645 template<
typename F,
typename Policy>
646 void method_(
const std::string& name, F
function,
const Policy& policy);
660 template<
typename F,
typename Policy>
661 void method_(
const std::string& name, F
function, std::vector< rttr::metadata > data,
const Policy& policy);
671 template<
typename EnumType>
672 void enumeration_(std::vector< std::pair< std::string, EnumType> > enum_data,
673 std::vector< rttr::metadata > data = std::vector< rttr::metadata >());
694 #define RTTR_REGISTER
718 #define RTTR_REGISTER_FRIEND
723 #include "rttr/impl/register_reflection_impl.h"
725 #endif //__RTTR_REGISTER_REFLECTION_H__
class_ & constructor(std::vector< rttr::metadata > data=std::vector< rttr::metadata >())
Register a constructor for this class type with with or without arguments.
class_ & enumeration(std::vector< std::pair< std::string, EnumType > > enum_data, std::vector< rttr::metadata > data=std::vector< rttr::metadata >())
Register a nested enumeration of type EnumType.
This class holds the type information for any arbitrary object.
Definition: type.h:165
void property_(const std::string &name, A acc)
Register a property with read and write access.
class_ & method(const std::string &name, F function)
Register a method to this class.
class_ & property(const std::string &name, A acc)
Register a property with read and write access to this class.
void method_(const std::string &name, F function)
Register a free function.
void enumeration_(std::vector< std::pair< std::string, EnumType > > enum_data, std::vector< rttr::metadata > data=std::vector< rttr::metadata >())
Register an enumeration of type EnumType.
void constructor_(std::vector< rttr::metadata > data=std::vector< rttr::metadata >())
Register a constructor for a type T.
class_ & property_readonly(const std::string &name, A accessor)
Register a property with read only access to this class.
class_(std::vector< rttr::metadata > data=std::vector< rttr::metadata >())
void property_readonly_(const std::string &name, A acc)
Register a property with read only access.
This class is used to register the constructors, properties, methods and enumeration for a certain cl...
Definition: register_reflection.h:129