28 #ifndef RTTR_INSTANCE_H_
29 #define RTTR_INSTANCE_H_
31 #include "rttr/detail/base/core_prerequisites.h"
32 #include "rttr/detail/misc/misc_type_traits.h"
33 #include "rttr/detail/misc/data_address_container.h"
56 RTTR_INLINE instance(
variant& var);
58 RTTR_INLINE instance(
const instance& other);
60 RTTR_INLINE instance(instance&& other);
62 template<
typename T,
typename Tp = decay_instance_t<T>>
63 RTTR_INLINE instance(
const T& data);
65 template<
typename T,
typename Tp = decay_instance_t<T>>
66 RTTR_INLINE instance(T& data);
68 template<
typename Target_Type>
69 RTTR_INLINE Target_Type* try_convert()
const;
71 RTTR_INLINE
bool is_valid()
const;
72 explicit operator bool()
const;
74 RTTR_INLINE
type get_type()
const;
77 instance& operator=(
const instance& other);
79 detail::data_address_container m_data_container;
84 #include "rttr/detail/impl/instance_impl.h"
86 #endif // RTTR_INSTANCE_H_
Definition: access_levels.h:33
The type class holds the type information for any arbitrary object.
Definition: type.h:153
The instance class is used for forwarding the instance of an object to invoke a property or method...
Definition: instance.h:46
detail::enum_data< Enum_Type > value(const char *name, Enum_Type value)
The value function should be used to add a mapping from enum name to value during the registration pr...
The variant class allows to store data of any type and convert between these types transparently...
Definition: variant.h:192