count_in/out_serializers will now count the number of specializations if a type is
specialized, otherwise it will count the number of non-specialized serialization functions.
as a result of this, is_output/input_serializable now works as you would expect from the name
and will return true for correctly configured specialized types too.
this caused some logic changes to need to happen in cereal.hpp, mostly within the PROCESS_IF macro.
added some tests related to this change and #180fixes#180
Updated run time error to be more informative when polymorphic serialization fails.
working on changing CEREAL_REGISTER_SHARED_LIBRARY to less specific name and description
Added static_assert on improper use of base_class with non base class.
Removed ElideMinimal type and related traits.
Added BaseClassBase type which base_class and virtual_base_class inherit from.
Added traits to see if wrapped type is minimal, updated xml/json accordingly.
This defect was discovered in issue #153, and resulted in reading
past memory. This fix repairs the off-by-one situations. Additionally,
in usages of this function where the size is known, it saves processing
by using the std::string's length property.
Signed-off-by: Erich Keane <erich.keane@verizon.net>
tuple names are now generated at compile time. Additionally,
a breaking-change of re-ordering tuples to be from first-last
rather than last-first has been included.
User rggjan requested that tuples provide a different name for each
element in this issue: https://github.com/USCiLab/cereal/issues/140.
This fix modifies tuple.hpp to generate tuple names in the order which
they are are placed in the tuple. Note that this will appear to be a
countdown (tuple_element2, tuple_element1, tuple_element0) since tuples
are generated in reverse order.
Signed-off-by: Erich Keane <erich.keane@verizon.net>
User rggjan requested that tuples provide a different name for each
element in this issue: https://github.com/USCiLab/cereal/issues/140.
This fix modifies tuple.hpp to generate tuple names in the order which
they are are placed in the tuple. Note that this will appear to be a
countdown (tuple_element2, tuple_element1, tuple_element0) since tuples
are generated in reverse order.
Signed-off-by: Erich Keane <erich.keane@verizon.net>
This is option 1 for #137 which I'm quite happy with. Works across compilation units and
shared libs on linux, need to test on windows.
As for #113, it doesn't seem to be an issue on linux so just remains to sort that out on windows.
Removed WrapperBase and added ElideMinimal instead, which is a trait that is checked by
text archives performing minimal serialization to see if they should go ahead and skip creating various nodes
and naming things. Currently only used on base_class and virtual_base_class