| cereal::detail::PolymorphicVirtualCaster< Base, Derived >(3) | Library Functions Manual | cereal::detail::PolymorphicVirtualCaster< Base, Derived >(3) |
NAME
cereal::detail::PolymorphicVirtualCaster< Base, Derived > - Strongly typed derivation of PolymorphicCaster.
SYNOPSIS
#include </home/build/include/cereal/details/polymorphic_impl.hpp>
Inherits cereal::detail::PolymorphicCaster.
Public Member Functions
PolymorphicVirtualCaster ()
Inserts an entry in the polymorphic casting map for this pairing. void const *
downcast (void const *const ptr) const override
Performs the proper downcast with the templated types. void * upcast
(void *const ptr) const override
Performs the proper upcast with the templated types. std::shared_ptr< void
> upcast (std::shared_ptr< void > const &ptr) const
override
Performs the proper upcast with the templated types (shared_ptr version).
Public Member Functions inherited from
cereal::detail::PolymorphicCaster
PolymorphicCaster (const PolymorphicCaster &)=default
PolymorphicCaster & operator= (const PolymorphicCaster
&)=default
PolymorphicCaster (PolymorphicCaster &&) CEREAL_NOEXCEPT
PolymorphicCaster & operator= (PolymorphicCaster &&)
CEREAL_NOEXCEPT
Detailed Description
template<class Base, class Derived>
struct cereal::detail::PolymorphicVirtualCaster< Base, Derived >"Strongly typed derivation of PolymorphicCaster.
Constructor & Destructor Documentation
template<class Base, class Derived> cereal::detail::PolymorphicVirtualCaster< Base, Derived >::PolymorphicVirtualCaster () [inline]
Inserts an entry in the polymorphic casting map for this pairing. Creates an explicit mapping between Base and Derived in both upwards and downwards directions, allowing void pointers to either to be properly cast assuming dynamic type information is available
Member Function Documentation
template<class Base, class Derived> void const * cereal::detail::PolymorphicVirtualCaster< Base, Derived >::downcast (void const *const ptr) const [inline], [override], [virtual]
Performs the proper downcast with the templated types.
Implements cereal::detail::PolymorphicCaster.
template<class Base, class Derived> std::shared_ptr< void > cereal::detail::PolymorphicVirtualCaster< Base, Derived >::upcast (std::shared_ptr< void > const & ptr) const [inline], [override], [virtual]
Performs the proper upcast with the templated types (shared_ptr version).
Implements cereal::detail::PolymorphicCaster.
template<class Base, class Derived> void * cereal::detail::PolymorphicVirtualCaster< Base, Derived >::upcast (void *const ptr) const [inline], [override], [virtual]
Performs the proper upcast with the templated types.
Implements cereal::detail::PolymorphicCaster.
Author
Generated automatically by Doxygen for cereal from the source code.
| Sat Oct 10 2026 08:08:15 | cereal |