registration.h File Reference
#include "rttr/detail/base/core_prerequisites.h"
#include "rttr/policy.h"
#include "rttr/access_levels.h"
#include "rttr/detail/registration/bind_types.h"
#include "rttr/detail/registration/registration_executer.h"
#include "rttr/detail/default_arguments/default_arguments.h"
#include "rttr/detail/parameter_info/parameter_names.h"
#include "rttr/variant.h"
#include "rttr/detail/registration/registration_impl.h"

Go to the source code of this file.

Classes

class  rttr::registration::bind< T >
 The bind class is used to chain registration calls. More...
 
class  rttr::registration::bind< T >
 The bind class is used to chain registration calls. More...
 
class  rttr::registration::class_< Class_Type >
 The class_ is used to register classes to RTTR. More...
 
class  rttr::registration
 The registration class is the entry point for the manual registration of reflection information to the type system. More...
 

Namespaces

 rttr
 

Macros

#define RTTR_PLUGIN_REGISTRATION
 Use this macro to automatically register your reflection information inside a plugin to RTTR. More...
 
#define RTTR_REGISTRATION
 Use this macro to automatically register your reflection information to RTTR before main is called. More...
 
#define RTTR_REGISTRATION_FRIEND
 Place this macro inside a class, when you need to reflect properties, methods or constructors which are declared in protected or private scope of the class. More...
 

Functions

template<typename... TArgs>
detail::default_args< TArgs... > rttr::default_arguments (TArgs &&...args)
 The default_arguments function should be used add default arguments, for constructors or a methods during the registration process of reflection information. More...
 
detail::metadata rttr::metadata (variant key, variant value)
 The metadata function can be used to add additional meta data information during the registration process of reflection information. More...
 
template<typename... TArgs>
detail::parameter_names< detail::decay_t< TArgs >... > rttr::parameter_names (TArgs &&...args)
 The parameter_names function should be used add human-readable names of the parameters, for constructors or a methods during the registration process of reflection information. More...
 
template<typename ClassType , typename ReturnType , typename... Args>
auto rttr::select_const (ReturnType(ClassType::*func)(Args...) const) -> decltype(func)
 This is a helper function to register overloaded const member functions. More...
 
template<typename ClassType , typename ReturnType , typename... Args>
auto rttr::select_const (ReturnType(ClassType::*func)(Args...) const noexcept) -> decltype(func)
 Overload with noexcept function type. More...
 
template<typename ClassType , typename ReturnType , typename... Args>
auto rttr::select_non_const (ReturnType(ClassType::*func)(Args...)) -> decltype(func)
 This is a helper function to register overloaded const member functions. More...
 
template<typename ClassType , typename ReturnType , typename... Args>
auto rttr::select_non_const (ReturnType(ClassType::*func)(Args...) noexcept) -> decltype(func)
 Overload with noexcept function type. More...
 
template<typename Signature >
Signature * rttr::select_overload (Signature *func)
 This is a helper function to register overloaded functions. More...
 
template<typename Signature , typename ClassType >
auto rttr::select_overload (Signature(ClassType::*func)) -> decltype(func)
 This is a helper function to register overloaded member functions. More...
 
template<typename Enum_Type >
detail::enum_data< Enum_Type > rttr::value (string_view, Enum_Type value)
 The value function should be used to add a mapping from enum name to value during the registration process of reflection information. More...
 

Macro Definition Documentation

#define RTTR_PLUGIN_REGISTRATION

Use this macro to automatically register your reflection information inside a plugin to RTTR.

Use it in following way:

int some_method() { return 42; }
{
rttr::registration::method("some_method", &some_method);
}

Just place the macro in global scope in a cpp file.

Remarks
It is not possible to place the macro multiple times in one cpp file. When you compile your plugin with the gcc toolchain, make sure you use the compiler option: -fno-gnu-unique. otherwise the unregistration will not work properly.
See also
library
#define RTTR_REGISTRATION

Use this macro to automatically register your reflection information to RTTR before main is called.

Use it in following way:

Just place the macro in global scope in a cpp file.

Remarks
It is not possible to place the macro multiple times in one cpp file.
#define RTTR_REGISTRATION_FRIEND

Place this macro inside a class, when you need to reflect properties, methods or constructors which are declared in protected or private scope of the class.

class Foo
{
private:
int m_value;
};
{
.property("value", &Foo::m_value);
}