|
NDDEM
|
Internal polymorphism support. More...
#include "cereal/details/polymorphic_impl_fwd.hpp"#include "cereal/details/static_object.hpp"#include "cereal/types/memory.hpp"#include "cereal/types/string.hpp"#include <functional>#include <typeindex>#include <map>#include <limits>#include <set>#include <stack>Go to the source code of this file.
Classes | |
| struct | cereal::detail::PolymorphicCaster |
| Base type for polymorphic void casting. More... | |
| struct | cereal::detail::PolymorphicCasters |
| Holds registered mappings between base and derived types for casting. More... | |
| struct | cereal::detail::PolymorphicVirtualCaster< Base, Derived > |
| Strongly typed derivation of PolymorphicCaster. More... | |
| struct | cereal::detail::RegisterPolymorphicCaster< Base, Derived > |
| Registers a polymorphic casting relation between a Base and Derived type. More... | |
| struct | cereal::detail::binding_name< T > |
| Binds a compile time type with a user defined string. More... | |
| struct | cereal::detail::OutputBindingMap< Archive > |
| A structure holding a map from type_indices to output serializer functions. More... | |
| struct | cereal::detail::OutputBindingMap< Archive >::Serializers |
| Struct containing the serializer functions for all pointer types. More... | |
| struct | cereal::detail::EmptyDeleter< T > |
| An empty noop deleter. More... | |
| struct | cereal::detail::InputBindingMap< Archive > |
| A structure holding a map from type name strings to input serializer functions. More... | |
| struct | cereal::detail::InputBindingMap< Archive >::Serializers |
| Struct containing the serializer functions for all pointer types. More... | |
| struct | cereal::detail::InputBindingCreator< Archive, T > |
| Creates a binding (map entry) between an input archive type and a polymorphic type. More... | |
| struct | cereal::detail::OutputBindingCreator< Archive, T > |
| Creates a binding (map entry) between an output archive type and a polymorphic type. More... | |
| class | cereal::detail::OutputBindingCreator< Archive, T >::PolymorphicSharedPointerWrapper |
| Holds a properly typed shared_ptr to the polymorphic type. More... | |
| struct | cereal::detail::adl_tag |
| struct | cereal::detail::anonymous_namespace{polymorphic_impl.hpp}::polymorphic_binding_tag |
| struct | cereal::detail::create_bindings< Archive, T > |
| Causes the static object bindings between an archive type and a serializable type T. More... | |
| struct | cereal::detail::instantiate_function<> |
| When specialized, causes the compiler to instantiate its parameter. More... | |
| struct | cereal::detail::polymorphic_serialization_support< Archive, T > |
| struct | cereal::detail::bind_to_archives< T, Tag > |
| Begins the binding process of a type to all registered archives. More... | |
Namespaces | |
| cereal | |
| in certain simple scenarios. They should probably not be used if maximizing performance is the main objective. | |
| cereal::detail | |
| cereal::detail::anonymous_namespace{polymorphic_impl.hpp} | |
Macros | |
| #define | CEREAL_BIND_TO_ARCHIVES_UNUSED_FUNCTION static void unused() { (void)b; } |
| Helper macro to omit unused warning. More... | |
| #define | CEREAL_BIND_TO_ARCHIVES(...) |
| Binds a polymorphic type to all registered archives. More... | |
| #define | UNREGISTERED_POLYMORPHIC_CAST_EXCEPTION(LoadSave) |
| Error message used for unregistered polymorphic casts. More... | |
| #define | CEREAL_EMPLACE_MAP(map, key, value) map.emplace( key, value ); |
Functions | |
| template<class T , typename BindingTag > | |
| void | cereal::detail::instantiate_polymorphic_binding (T *, int, BindingTag, adl_tag) |
| Base case overload for instantiation. More... | |
Internal polymorphism support.
| #define CEREAL_BIND_TO_ARCHIVES | ( | ... | ) |
Binds a polymorphic type to all registered archives.
This binds a polymorphic type to all compatible registered archives that have been registered with CEREAL_REGISTER_ARCHIVE. This must be called after all archives are registered (usually after the archives themselves have been included).
| #define CEREAL_BIND_TO_ARCHIVES_UNUSED_FUNCTION static void unused() { (void)b; } |
Helper macro to omit unused warning.
| #define UNREGISTERED_POLYMORPHIC_CAST_EXCEPTION | ( | LoadSave | ) |
Error message used for unregistered polymorphic casts.