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.