|
struct | NameValuePairCore |
| Traits struct for NVPs. More...
|
|
struct | DeferredDataCore |
| Traits struct for DeferredData. More...
|
|
class | OutputArchiveBase |
|
class | InputArchiveBase |
|
struct | polymorphic_serialization_support |
|
struct | Version |
| Version information class. More...
|
|
struct | Versions |
| Holds all registered version information. More...
|
|
struct | PolymorphicCaster |
| Base type for polymorphic void casting. More...
|
|
struct | PolymorphicCasters |
| Holds registered mappings between base and derived types for casting. More...
|
|
struct | PolymorphicVirtualCaster |
| Strongly typed derivation of PolymorphicCaster. More...
|
|
struct | RegisterPolymorphicCaster |
| Registers a polymorphic casting relation between a Base and Derived type. More...
|
|
struct | binding_name |
| Binds a compile time type with a user defined string. More...
|
|
struct | OutputBindingMap |
| A structure holding a map from type_indices to output serializer functions. More...
|
|
struct | EmptyDeleter |
| An empty noop deleter. More...
|
|
struct | InputBindingMap |
| A structure holding a map from type name strings to input serializer functions. More...
|
|
struct | InputBindingCreator |
| Creates a binding (map entry) between an input archive type and a polymorphic type. More...
|
|
struct | OutputBindingCreator |
| Creates a binding (map entry) between an output archive type and a polymorphic type. More...
|
|
struct | adl_tag |
|
struct | create_bindings |
| Causes the static object bindings between an archive type and a serializable type T. More...
|
|
struct | instantiate_function |
| When specialized, causes the compiler to instantiate its parameter. More...
|
|
struct | bind_to_archives |
| Begins the binding process of a type to all registered archives. More...
|
|
struct | init_binding |
| Used to hide the static object used to bind T to registered archives. More...
|
|
struct | PolymorphicRelation |
| Forward declaration, see polymorphic_impl.hpp for more information. More...
|
|
class | StaticObject |
| A static, pre-execution object. More...
|
|
struct | Construct |
|
struct | Construct< T, A, false, false, false, false > |
|
struct | Construct< T, A, true, false, false, false > |
|
struct | Construct< T, A, false, true, false, false > |
|
struct | Construct< T, A, false, false, true, false > |
|
struct | Construct< T, A, false, false, false, true > |
|
template<class T , typename BindingTag >
void cereal::detail::instantiate_polymorphic_binding |
( |
T * |
, |
|
|
int |
, |
|
|
BindingTag |
, |
|
|
adl_tag |
|
|
) |
| |
Base case overload for instantiation.
This will end up always being the best overload due to the second parameter always being passed as an int. All other overloads will accept pointers to archive types and have lower precedence than int.
Since the compiler needs to check all possible overloads, the other overloads created via CEREAL_REGISTER_ARCHIVE, which will have lower precedence due to requiring a conversion from int to (Archive*), will cause their return types to be instantiated through the static object mechanisms even though they are never called.
See the documentation for the other functions to try and understand this