Closed
Description
When registering a type, version information is stored in two places:
- a static member variable for a specialization of
Version<T>
- inside the static object (global singleton)
StaticObject<Versions>
.
When saving a type, we currently try to get its version number by looking at the member static variable. When loading, we access the StaticObject
. This means that when something is versioned in one compilation unit, it won't be available via the specialization of Version<T>
, since we never instantiate the class.
See https://groups.google.com/forum/#!topic/cerealcpp/vBYPUzGB9Mw for more information.