28 #ifndef RTTR_DESTRUCTOR_H_ 29 #define RTTR_DESTRUCTOR_H_ 31 #include "rttr/detail/base/core_prerequisites.h" 32 #include "rttr/detail/misc/class_item_mapper.h" 42 class destructor_wrapper_base;
44 RTTR_API destructor create_invalid_item();
80 bool is_valid()
const RTTR_NOEXCEPT;
87 explicit operator bool()
const RTTR_NOEXCEPT;
96 type get_declaring_type()
const RTTR_NOEXCEPT;
103 type get_destructed_type()
const RTTR_NOEXCEPT;
113 bool invoke(
variant& obj)
const RTTR_NOEXCEPT;
130 destructor(
const detail::destructor_wrapper_base* wrapper) RTTR_NOEXCEPT;
133 friend T detail::create_item(
const detail::class_item_to_wrapper_t<T>* wrapper);
135 friend T detail::create_invalid_item();
138 const detail::destructor_wrapper_base* m_wrapper;
143 #endif // RTTR_DESTRUCTOR_H_ Definition: access_levels.h:33
The type class holds the type information for any arbitrary object.
Definition: type.h:170
constexpr bool operator==(basic_string_view< CharT, Traits > lhs, basic_string_view< CharT, Traits > rhs) noexcept
Compares the two views lhs and rhs.
The destructor class provides a destructor for registered types.
Definition: destructor.h:72
constexpr bool operator!=(basic_string_view< CharT, Traits > lhs, basic_string_view< CharT, Traits > rhs) noexcept
Compares the two views lhs and rhs.
The variant class allows to store data of any type and convert between these types transparently.
Definition: variant.h:197