30 #ifndef CEREAL_TYPES_BASE_CLASS_HPP_ 31 #define CEREAL_TYPES_BASE_CLASS_HPP_ 38 namespace base_class_detail
43 template <class Base, class Derived, bool IsPolymorphic = std::is_polymorphic<Base>::value>
52 template <
class Base,
class Derived>
101 template<
class Derived>
103 base_ptr(const_cast<Base*>(static_cast<Base const *>(derived)))
105 static_assert( std::is_base_of<Base, Derived>::value,
"Can only use base_class on a valid base class" );
188 template<
class Derived>
190 base_ptr(const_cast<Base*>(static_cast<Base const *>(derived)))
192 static_assert( std::is_base_of<Base, Derived>::value,
"Can only use virtual_base_class on a valid base class" );
201 #endif // CEREAL_TYPES_BASE_CLASS_HPP_ Casts a derived class to its virtual base class in a way that allows cereal to track inheritance...
Definition: base_class.hpp:186
Common base type for base class casting.
Definition: traits.hpp:1145
static PolymorphicCaster const * bind()
Performs registration (binding) between Base and Derived.
Definition: polymorphic_impl.hpp:403
Internal type trait support.
Casts a derived class to its non-virtual base class in a way that safely supports abstract classes...
Definition: base_class.hpp:99
Definition: access.hpp:40
Internal polymorphism support forward declarations.
Definition: base_class.hpp:44