NDDEM
Namespaces | Classes | Typedefs | Enumerations | Functions
cereal Namespace Reference

in certain simple scenarios. They should probably not be used if maximizing performance is the main objective. More...

Namespaces

 base64
 
 base_class_detail
 
 bitset_detail
 
 boost_variant_detail
 
 common_detail
 
 detail
 
 memory_detail
 
 polymorphic_detail
 
 portable_binary_detail
 
 queue_detail
 
 rapidxml
 
 set_detail
 
 stack_detail
 
 traits
 
 tuple_detail
 
 unordered_set_detail
 
 util
 
 variant_detail
 
 xml_detail
 

Classes

struct  LoadAndConstruct
 A class that allows cereal to load smart pointers to types that have no default constructor. More...
 
class  construct
 Used to construct types with no default constructor. More...
 
class  access
 A class that can be made a friend to give cereal access to non public functions. More...
 
class  BinaryOutputArchive
 An output archive designed to save data in a compact binary representation. More...
 
class  BinaryInputArchive
 An input archive designed to load data saved using BinaryOutputArchive. More...
 
struct  RapidJSONException
 An exception thrown when rapidjson fails an internal assertion. More...
 
class  JSONOutputArchive
 An output archive designed to save data to JSON. More...
 
class  JSONInputArchive
 An input archive designed to load data from JSON. More...
 
class  PortableBinaryOutputArchive
 An output archive designed to save data in a compact binary representation portable over different architectures. More...
 
class  PortableBinaryInputArchive
 An input archive designed to load data saved using PortableBinaryOutputArchive. More...
 
class  XMLOutputArchive
 An output archive designed to save data to XML. More...
 
class  XMLInputArchive
 An output archive designed to load data from XML. More...
 
class  OutputArchive
 The base output archive class. More...
 
class  InputArchive
 The base input archive class. More...
 
struct  Exception
 An exception class thrown when things go wrong at runtime. More...
 
class  NameValuePair
 For holding name value pairs. More...
 
struct  BinaryData
 A wrapper around data that can be serialized in a binary fashion. More...
 
class  DeferredData
 A wrapper around data that should be serialized after all non-deferred data. More...
 
class  SizeTag
 A wrapper around size metadata. More...
 
struct  MapItem
 A wrapper around a key and value for serializing data into maps. More...
 
struct  specialize
 A class used to disambiguate cases where cereal cannot detect a unique way of serializing a class. More...
 
struct  base_class
 Casts a derived class to its non-virtual base class in a way that safely supports abstract classes. More...
 
struct  virtual_base_class
 Casts a derived class to its virtual base class in a way that allows cereal to track inheritance. More...
 

Typedefs

using size_type = CEREAL_SIZE_TYPE
 The size type used by cereal. More...
 

Enumerations

enum  Flags { AllowEmptyClassElision = 1 }
 Special flags for archives. More...
 
enum class  specialization
 

Functions

template<class T >
std::enable_if< std::is_arithmetic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (BinaryOutputArchive &ar, T const &t)
 Saving for POD types to binary. More...
 
template<class T >
std::enable_if< std::is_arithmetic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (BinaryInputArchive &ar, T &t)
 Loading for POD types from binary. More...
 
template<class Archive , class T >
 CEREAL_SERIALIZE_FUNCTION_NAME (Archive &ar, NameValuePair< T > &t)
 Serializing NVP types to binary. More...
 
template<class Archive , class T >
 CEREAL_SERIALIZE_FUNCTION_NAME (Archive &ar, SizeTag< T > &t)
 Serializing SizeTags to binary. More...
 
template<class T >
void CEREAL_SAVE_FUNCTION_NAME (BinaryOutputArchive &ar, BinaryData< T > const &bd)
 Saving binary data. More...
 
template<class T >
void CEREAL_LOAD_FUNCTION_NAME (BinaryInputArchive &ar, BinaryData< T > &bd)
 Loading binary data. More...
 
template<class T >
void prologue (JSONOutputArchive &, NameValuePair< T > const &)
 Prologue for NVPs for JSON archives. More...
 
template<class T >
void prologue (JSONInputArchive &, NameValuePair< T > const &)
 Prologue for NVPs for JSON archives. More...
 
template<class T >
void epilogue (JSONOutputArchive &, NameValuePair< T > const &)
 Epilogue for NVPs for JSON archives. More...
 
template<class T >
void epilogue (JSONInputArchive &, NameValuePair< T > const &)
 Epilogue for NVPs for JSON archives. More...
 
template<class T >
void prologue (JSONOutputArchive &, DeferredData< T > const &)
 Prologue for deferred data for JSON archives. More...
 
template<class T >
void prologue (JSONInputArchive &, DeferredData< T > const &)
 Prologue for deferred data for JSON archives. More...
 
template<class T >
void epilogue (JSONOutputArchive &, DeferredData< T > const &)
 Epilogue for deferred for JSON archives. More...
 
template<class T >
void epilogue (JSONInputArchive &, DeferredData< T > const &)
 Epilogue for deferred for JSON archives. More...
 
template<class T >
void prologue (JSONOutputArchive &ar, SizeTag< T > const &)
 Prologue for SizeTags for JSON archives. More...
 
template<class T >
void prologue (JSONInputArchive &, SizeTag< T > const &)
 Prologue for SizeTags for JSON archives. More...
 
template<class T >
void epilogue (JSONOutputArchive &, SizeTag< T > const &)
 Epilogue for SizeTags for JSON archives. More...
 
template<class T >
void epilogue (JSONInputArchive &, SizeTag< T > const &)
 Epilogue for SizeTags for JSON archives. More...
 
template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, JSONOutputArchive >::value, !traits::has_minimal_output_serialization< T, JSONOutputArchive >::value > = traits::sfinae>
void prologue (JSONOutputArchive &ar, T const &)
 Prologue for all other types for JSON archives (except minimal types) More...
 
template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, JSONInputArchive >::value, !traits::has_minimal_input_serialization< T, JSONInputArchive >::value > = traits::sfinae>
void prologue (JSONInputArchive &ar, T const &)
 Prologue for all other types for JSON archives. More...
 
template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, JSONOutputArchive >::value, !traits::has_minimal_output_serialization< T, JSONOutputArchive >::value > = traits::sfinae>
void epilogue (JSONOutputArchive &ar, T const &)
 Epilogue for all other types other for JSON archives (except minimal types) More...
 
template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, JSONInputArchive >::value, !traits::has_minimal_input_serialization< T, JSONInputArchive >::value > = traits::sfinae>
void epilogue (JSONInputArchive &ar, T const &)
 Epilogue for all other types other for JSON archives. More...
 
void prologue (JSONOutputArchive &ar, std::nullptr_t const &)
 Prologue for arithmetic types for JSON archives. More...
 
void prologue (JSONInputArchive &, std::nullptr_t const &)
 Prologue for arithmetic types for JSON archives. More...
 
void epilogue (JSONOutputArchive &, std::nullptr_t const &)
 Epilogue for arithmetic types for JSON archives. More...
 
void epilogue (JSONInputArchive &, std::nullptr_t const &)
 Epilogue for arithmetic types for JSON archives. More...
 
template<class CharT , class Traits , class Alloc >
void prologue (JSONOutputArchive &ar, std::basic_string< CharT, Traits, Alloc > const &)
 Prologue for strings for JSON archives. More...
 
template<class CharT , class Traits , class Alloc >
void prologue (JSONInputArchive &, std::basic_string< CharT, Traits, Alloc > const &)
 Prologue for strings for JSON archives. More...
 
template<class CharT , class Traits , class Alloc >
void epilogue (JSONOutputArchive &, std::basic_string< CharT, Traits, Alloc > const &)
 Epilogue for strings for JSON archives. More...
 
template<class CharT , class Traits , class Alloc >
void epilogue (JSONInputArchive &, std::basic_string< CharT, Traits, Alloc > const &)
 Epilogue for strings for JSON archives. More...
 
template<class T >
void CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &ar, NameValuePair< T > const &t)
 Serializing NVP types to JSON. More...
 
template<class T >
void CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, NameValuePair< T > &t)
 
void CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &ar, std::nullptr_t const &t)
 Saving for nullptr to JSON. More...
 
void CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, std::nullptr_t &t)
 Loading arithmetic from JSON. More...
 
template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae>
void CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &ar, T const &t)
 Saving for arithmetic to JSON. More...
 
template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae>
void CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, T &t)
 Loading arithmetic from JSON. More...
 
template<class CharT , class Traits , class Alloc >
void CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &ar, std::basic_string< CharT, Traits, Alloc > const &str)
 saving string to JSON More...
 
template<class CharT , class Traits , class Alloc >
void CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, std::basic_string< CharT, Traits, Alloc > &str)
 loading string from JSON More...
 
template<class T >
void CEREAL_SAVE_FUNCTION_NAME (JSONOutputArchive &, SizeTag< T > const &)
 Saving SizeTags to JSON. More...
 
template<class T >
void CEREAL_LOAD_FUNCTION_NAME (JSONInputArchive &ar, SizeTag< T > &st)
 Loading SizeTags from JSON. More...
 
template<class T >
std::enable_if< std::is_arithmetic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (PortableBinaryOutputArchive &ar, T const &t)
 Saving for POD types to portable binary. More...
 
template<class T >
std::enable_if< std::is_arithmetic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (PortableBinaryInputArchive &ar, T &t)
 Loading for POD types from portable binary. More...
 
template<class T >
void CEREAL_SAVE_FUNCTION_NAME (PortableBinaryOutputArchive &ar, BinaryData< T > const &bd)
 Saving binary data to portable binary. More...
 
template<class T >
void CEREAL_LOAD_FUNCTION_NAME (PortableBinaryInputArchive &ar, BinaryData< T > &bd)
 Loading binary data from portable binary. More...
 
template<class T >
void prologue (XMLOutputArchive &, NameValuePair< T > const &)
 Prologue for NVPs for XML output archives. More...
 
template<class T >
void prologue (XMLInputArchive &, NameValuePair< T > const &)
 Prologue for NVPs for XML input archives. More...
 
template<class T >
void epilogue (XMLOutputArchive &, NameValuePair< T > const &)
 Epilogue for NVPs for XML output archives. More...
 
template<class T >
void epilogue (XMLInputArchive &, NameValuePair< T > const &)
 Epilogue for NVPs for XML input archives. More...
 
template<class T >
void prologue (XMLOutputArchive &, DeferredData< T > const &)
 Prologue for deferred data for XML archives. More...
 
template<class T >
void prologue (XMLInputArchive &, DeferredData< T > const &)
 Prologue for deferred data for XML archives. More...
 
template<class T >
void epilogue (XMLOutputArchive &, DeferredData< T > const &)
 Epilogue for deferred for XML archives. More...
 
template<class T >
void epilogue (XMLInputArchive &, DeferredData< T > const &)
 Epilogue for deferred for XML archives. More...
 
template<class T >
void prologue (XMLOutputArchive &ar, SizeTag< T > const &)
 Prologue for SizeTags for XML output archives. More...
 
template<class T >
void prologue (XMLInputArchive &, SizeTag< T > const &)
 
template<class T >
void epilogue (XMLOutputArchive &, SizeTag< T > const &)
 Epilogue for SizeTags for XML output archives. More...
 
template<class T >
void epilogue (XMLInputArchive &, SizeTag< T > const &)
 
template<class T , traits::DisableIf< traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, XMLOutputArchive >::value||traits::has_minimal_output_serialization< T, XMLOutputArchive >::value > = traits::sfinae>
void prologue (XMLOutputArchive &ar, T const &)
 Prologue for all other types for XML output archives (except minimal types) More...
 
template<class T , traits::DisableIf< traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, XMLInputArchive >::value||traits::has_minimal_input_serialization< T, XMLInputArchive >::value > = traits::sfinae>
void prologue (XMLInputArchive &ar, T const &)
 Prologue for all other types for XML input archives (except minimal types) More...
 
template<class T , traits::DisableIf< traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, XMLOutputArchive >::value||traits::has_minimal_output_serialization< T, XMLOutputArchive >::value > = traits::sfinae>
void epilogue (XMLOutputArchive &ar, T const &)
 Epilogue for all other types other for XML output archives (except minimal types) More...
 
template<class T , traits::DisableIf< traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, XMLInputArchive >::value||traits::has_minimal_input_serialization< T, XMLInputArchive >::value > = traits::sfinae>
void epilogue (XMLInputArchive &ar, T const &)
 Epilogue for all other types other for XML output archives (except minimal types) More...
 
template<class T >
void CEREAL_SAVE_FUNCTION_NAME (XMLOutputArchive &ar, NameValuePair< T > const &t)
 Saving NVP types to XML. More...
 
template<class T >
void CEREAL_LOAD_FUNCTION_NAME (XMLInputArchive &ar, NameValuePair< T > &t)
 Loading NVP types from XML. More...
 
template<class T >
void CEREAL_SAVE_FUNCTION_NAME (XMLOutputArchive &, SizeTag< T > const &)
 Saving SizeTags to XML. More...
 
template<class T >
void CEREAL_LOAD_FUNCTION_NAME (XMLInputArchive &ar, SizeTag< T > &st)
 Loading SizeTags from XML. More...
 
template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae>
void CEREAL_SAVE_FUNCTION_NAME (XMLOutputArchive &ar, T const &t)
 Saving for POD types to xml. More...
 
template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae>
void CEREAL_LOAD_FUNCTION_NAME (XMLInputArchive &ar, T &t)
 Loading for POD types from xml. More...
 
template<class CharT , class Traits , class Alloc >
void CEREAL_SAVE_FUNCTION_NAME (XMLOutputArchive &ar, std::basic_string< CharT, Traits, Alloc > const &str)
 saving string to xml More...
 
template<class CharT , class Traits , class Alloc >
void CEREAL_LOAD_FUNCTION_NAME (XMLInputArchive &ar, std::basic_string< CharT, Traits, Alloc > &str)
 loading string from xml More...
 
template<class Archive , class T >
void prologue (Archive &, T const &)
 
template<class Archive , class T >
void epilogue (Archive &, T const &)
 
template<class KeyType , class ValueType >
MapItem< KeyType, ValueType > make_map_item (KeyType &&key, ValueType &&value)
 Create a MapItem so that human readable archives will group keys and values together. More...
 
template<class Archive , class T , size_t N>
std::enable_if< traits::is_output_serializable< BinaryData< T >, Archive >::value &&std::is_arithmetic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::array< T, N > const &array)
 
template<class Archive , class T , size_t N>
std::enable_if< traits::is_input_serializable< BinaryData< T >, Archive >::value &&std::is_arithmetic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::array< T, N > &array)
 
template<class Archive , class T , size_t N>
std::enable_if<!traits::is_output_serializable< BinaryData< T >, Archive >::value||!std::is_arithmetic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::array< T, N > const &array)
 Saving for std::array all other types. More...
 
template<class Archive , class T , size_t N>
std::enable_if<!traits::is_input_serializable< BinaryData< T >, Archive >::value||!std::is_arithmetic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::array< T, N > &array)
 Loading for std::array all other types. More...
 
template<class Archive , class T >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::atomic< T > const &a)
 Serializing (save) for std::atomic. More...
 
template<class Archive , class T >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::atomic< T > &a)
 Serializing (load) for std::atomic. More...
 
template<class Archive , size_t N, traits::EnableIf< traits::is_output_serializable< BinaryData< std::uint32_t >, Archive >::value > = traits::sfinae>
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::bitset< N > const &bits)
 Serializing (save) for std::bitset when BinaryData optimization supported. More...
 
template<class Archive , size_t N>
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::bitset< N > &bits)
 Serializing (load) for std::bitset. More...
 
template<class Archive , typename ... VariantTypes>
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, boost::variant< VariantTypes... > const &variant)
 Saving for boost::variant. More...
 
template<class Archive , typename ... VariantTypes>
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, boost::variant< VariantTypes... > &variant)
 Loading for boost::variant. More...
 
template<class Archive , class R , class P >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::chrono::duration< R, P > const &dur)
 Saving std::chrono::duration. More...
 
template<class Archive , class R , class P >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::chrono::duration< R, P > &dur)
 Loading std::chrono::duration. More...
 
template<class Archive , class C , class D >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::chrono::time_point< C, D > const &dur)
 Saving std::chrono::time_point. More...
 
template<class Archive , class C , class D >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::chrono::time_point< C, D > &dur)
 Loading std::chrono::time_point. More...
 
template<class Archive , class T >
std::enable_if< common_detail::is_enum< T >::value, typename common_detail::is_enum< T >::base_type >::type CEREAL_SAVE_MINIMAL_FUNCTION_NAME (Archive const &, T const &t)
 Saving for enum types. More...
 
template<class Archive , class T >
std::enable_if< common_detail::is_enum< T >::value, void >::type CEREAL_LOAD_MINIMAL_FUNCTION_NAME (Archive const &, T &&t, typename common_detail::is_enum< T >::base_type const &value)
 Loading for enum types. More...
 
template<class Archive , class T >
void CEREAL_SERIALIZE_FUNCTION_NAME (Archive &, T *&)
 Serialization for raw pointers. More...
 
template<class Archive , class T >
std::enable_if< std::is_array< T >::value, void >::type CEREAL_SERIALIZE_FUNCTION_NAME (Archive &ar, T &array)
 Serialization for C style arrays. More...
 
template<class Archive , class T >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::complex< T > const &comp)
 Serializing (save) for std::complex. More...
 
template<class Archive , class T >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::complex< T > &bits)
 Serializing (load) for std::complex. More...
 
template<class Archive , template< typename... > class Map, typename... Args, typename = typename Map<Args...>::mapped_type>
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, Map< Args... > const &map)
 Saving for std-like pair associative containers. More...
 
template<class Archive , template< typename... > class Map, typename... Args, typename = typename Map<Args...>::mapped_type>
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, Map< Args... > &map)
 Loading for std-like pair associative containers. More...
 
template<class Archive , class T , class A >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::deque< T, A > const &deque)
 Saving for std::deque. More...
 
template<class Archive , class T , class A >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::deque< T, A > &deque)
 Loading for std::deque. More...
 
template<class Archive , class T , class A >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::forward_list< T, A > const &forward_list)
 Saving for std::forward_list all other types. More...
 
template<class Archive , class T , class A >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::forward_list< T, A > &forward_list)
 Loading for std::forward_list all other types from. More...
 
template<class Archive , class T >
void serialize (Archive &, std::less< T > &)
 Saving for std::less. More...
 
template<class Archive , class T , class A >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::list< T, A > const &list)
 Saving for std::list. More...
 
template<class Archive , class T , class A >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::list< T, A > &list)
 Loading for std::list. More...
 
template<class Archive , class T >
std::enable_if<!std::is_polymorphic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::shared_ptr< T > const &ptr)
 Saving std::shared_ptr for non polymorphic types. More...
 
template<class Archive , class T >
std::enable_if<!std::is_polymorphic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::shared_ptr< T > &ptr)
 Loading std::shared_ptr, case when no user load and construct for non polymorphic types. More...
 
template<class Archive , class T >
std::enable_if<!std::is_polymorphic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::weak_ptr< T > const &ptr)
 Saving std::weak_ptr for non polymorphic types. More...
 
template<class Archive , class T >
std::enable_if<!std::is_polymorphic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::weak_ptr< T > &ptr)
 Loading std::weak_ptr for non polymorphic types. More...
 
template<class Archive , class T , class D >
std::enable_if<!std::is_polymorphic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::unique_ptr< T, D > const &ptr)
 Saving std::unique_ptr for non polymorphic types. More...
 
template<class Archive , class T , class D >
std::enable_if<!std::is_polymorphic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::unique_ptr< T, D > &ptr)
 Loading std::unique_ptr, case when user provides load_and_construct for non polymorphic types. More...
 
template<class Archive , class T >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, memory_detail::PtrWrapper< std::shared_ptr< T > const & > const &wrapper)
 Saving std::shared_ptr (wrapper implementation) More...
 
template<class Archive , class T >
std::enable_if< traits::has_load_and_construct< T, Archive >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, memory_detail::PtrWrapper< std::shared_ptr< T > & > &wrapper)
 Loading std::shared_ptr, case when user load and construct (wrapper implementation) More...
 
template<class Archive , class T >
std::enable_if<!traits::has_load_and_construct< T, Archive >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, memory_detail::PtrWrapper< std::shared_ptr< T > & > &wrapper)
 Loading std::shared_ptr, case when no user load and construct (wrapper implementation) More...
 
template<class Archive , class T , class D >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, memory_detail::PtrWrapper< std::unique_ptr< T, D > const & > const &wrapper)
 Saving std::unique_ptr (wrapper implementation) More...
 
template<class Archive , class T , class D >
std::enable_if< traits::has_load_and_construct< T, Archive >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, memory_detail::PtrWrapper< std::unique_ptr< T, D > & > &wrapper)
 Loading std::unique_ptr, case when user provides load_and_construct (wrapper implementation) More...
 
template<class Archive , class T , class D >
std::enable_if<!traits::has_load_and_construct< T, Archive >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, memory_detail::PtrWrapper< std::unique_ptr< T, D > & > &wrapper)
 Loading std::unique_ptr, case when no load_and_construct (wrapper implementation) More...
 
template<class Archive , typename T >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, const std::optional< T > &optional)
 Saving for std::optional. More...
 
template<class Archive , typename T >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::optional< T > &optional)
 Loading for std::optional. More...
 
template<class Archive , class T >
std::enable_if< std::is_polymorphic< T >::value &&std::is_abstract< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::shared_ptr< T > const &ptr)
 Saving std::shared_ptr for polymorphic types, abstract. More...
 
template<class Archive , class T >
std::enable_if< std::is_polymorphic< T >::value &&!std::is_abstract< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::shared_ptr< T > const &ptr)
 Saving std::shared_ptr for polymorphic types, not abstract. More...
 
template<class Archive , class T >
std::enable_if< std::is_polymorphic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::shared_ptr< T > &ptr)
 Loading std::shared_ptr for polymorphic types. More...
 
template<class Archive , class T >
std::enable_if< std::is_polymorphic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::weak_ptr< T > const &ptr)
 Saving std::weak_ptr for polymorphic types. More...
 
template<class Archive , class T >
std::enable_if< std::is_polymorphic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::weak_ptr< T > &ptr)
 Loading std::weak_ptr for polymorphic types. More...
 
template<class Archive , class T , class D >
std::enable_if< std::is_polymorphic< T >::value &&std::is_abstract< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::unique_ptr< T, D > const &ptr)
 Saving std::unique_ptr for polymorphic types that are abstract. More...
 
template<class Archive , class T , class D >
std::enable_if< std::is_polymorphic< T >::value &&!std::is_abstract< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::unique_ptr< T, D > const &ptr)
 Saving std::unique_ptr for polymorphic types, not abstract. More...
 
template<class Archive , class T , class D >
std::enable_if< std::is_polymorphic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::unique_ptr< T, D > &ptr)
 Loading std::unique_ptr, case when user provides load_and_construct for polymorphic types. More...
 
template<class Archive , class T , class C >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::queue< T, C > const &queue)
 Saving for std::queue. More...
 
template<class Archive , class T , class C >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::queue< T, C > &queue)
 Loading for std::queue. More...
 
template<class Archive , class T , class C , class Comp >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::priority_queue< T, C, Comp > const &priority_queue)
 Saving for std::priority_queue. More...
 
template<class Archive , class T , class C , class Comp >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::priority_queue< T, C, Comp > &priority_queue)
 Loading for std::priority_queue. More...
 
template<class Archive , class K , class C , class A >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::set< K, C, A > const &set)
 Saving for std::set. More...
 
template<class Archive , class K , class C , class A >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::set< K, C, A > &set)
 Loading for std::set. More...
 
template<class Archive , class K , class C , class A >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::multiset< K, C, A > const &multiset)
 Saving for std::multiset. More...
 
template<class Archive , class K , class C , class A >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::multiset< K, C, A > &multiset)
 Loading for std::multiset. More...
 
template<class Archive , class T , class C >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::stack< T, C > const &stack)
 Saving for std::stack. More...
 
template<class Archive , class T , class C >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::stack< T, C > &stack)
 Loading for std::stack. More...
 
template<class Archive , class CharT , class Traits , class Alloc >
std::enable_if< traits::is_output_serializable< BinaryData< CharT >, Archive >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::basic_string< CharT, Traits, Alloc > const &str)
 Serialization for basic_string types, if binary data is supported. More...
 
template<class Archive , class CharT , class Traits , class Alloc >
std::enable_if< traits::is_input_serializable< BinaryData< CharT >, Archive >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::basic_string< CharT, Traits, Alloc > &str)
 Serialization for basic_string types, if binary data is supported. More...
 
template<class Archive , class ... Types>
void CEREAL_SERIALIZE_FUNCTION_NAME (Archive &ar, std::tuple< Types... > &tuple)
 Serializing for std::tuple. More...
 
template<class Archive , class K , class H , class KE , class A >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::unordered_set< K, H, KE, A > const &unordered_set)
 Saving for std::unordered_set. More...
 
template<class Archive , class K , class H , class KE , class A >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::unordered_set< K, H, KE, A > &unordered_set)
 Loading for std::unordered_set. More...
 
template<class Archive , class K , class H , class KE , class A >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::unordered_multiset< K, H, KE, A > const &unordered_multiset)
 Saving for std::unordered_multiset. More...
 
template<class Archive , class K , class H , class KE , class A >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::unordered_multiset< K, H, KE, A > &unordered_multiset)
 Loading for std::unordered_multiset. More...
 
template<class Archive , class T1 , class T2 >
void CEREAL_SERIALIZE_FUNCTION_NAME (Archive &ar, std::pair< T1, T2 > &pair)
 Serializing for std::pair. More...
 
template<class Archive , class T >
std::enable_if< traits::is_output_serializable< BinaryData< T >, Archive >::value &&std::is_arithmetic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::valarray< T > const &valarray)
 Saving for std::valarray arithmetic types, using binary serialization, if supported. More...
 
template<class Archive , class T >
std::enable_if< traits::is_input_serializable< BinaryData< T >, Archive >::value &&std::is_arithmetic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::valarray< T > &valarray)
 Loading for std::valarray arithmetic types, using binary serialization, if supported. More...
 
template<class Archive , class T >
std::enable_if<!traits::is_output_serializable< BinaryData< T >, Archive >::value||!std::is_arithmetic< T >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::valarray< T > const &valarray)
 Saving for std::valarray all other types. More...
 
template<class Archive , class T >
std::enable_if<!traits::is_input_serializable< BinaryData< T >, Archive >::value||!std::is_arithmetic< T >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::valarray< T > &valarray)
 Loading for std::valarray all other types. More...
 
template<class Archive , typename VariantType1 , typename... VariantTypes>
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::variant< VariantType1, VariantTypes... > const &variant)
 Saving for std::variant. More...
 
template<class Archive , typename... VariantTypes>
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::variant< VariantTypes... > &variant)
 Loading for std::variant. More...
 
template<class Archive >
void CEREAL_SERIALIZE_FUNCTION_NAME (Archive &, std::monostate const &)
 Serializing a std::monostate. More...
 
template<class Archive , class T , class A >
std::enable_if< traits::is_output_serializable< BinaryData< T >, Archive >::value &&std::is_arithmetic< T >::value &&!std::is_same< T, bool >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::vector< T, A > const &vector)
 Serialization for std::vectors of arithmetic (but not bool) using binary serialization, if supported. More...
 
template<class Archive , class T , class A >
std::enable_if< traits::is_input_serializable< BinaryData< T >, Archive >::value &&std::is_arithmetic< T >::value &&!std::is_same< T, bool >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::vector< T, A > &vector)
 Serialization for std::vectors of arithmetic (but not bool) using binary serialization, if supported. More...
 
template<class Archive , class T , class A >
std::enable_if<(!traits::is_output_serializable< BinaryData< T >, Archive >::value||!std::is_arithmetic< T >::value) &&!std::is_same< T, bool >::value, void >::type CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::vector< T, A > const &vector)
 Serialization for non-arithmetic vector types. More...
 
template<class Archive , class T , class A >
std::enable_if<(!traits::is_input_serializable< BinaryData< T >, Archive >::value||!std::is_arithmetic< T >::value) &&!std::is_same< T, bool >::value, void >::type CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::vector< T, A > &vector)
 Serialization for non-arithmetic vector types. More...
 
template<class Archive , class A >
void CEREAL_SAVE_FUNCTION_NAME (Archive &ar, std::vector< bool, A > const &vector)
 Serialization for bool vector types. More...
 
template<class Archive , class A >
void CEREAL_LOAD_FUNCTION_NAME (Archive &ar, std::vector< bool, A > &vector)
 Serialization for bool vector types. More...
 

Detailed Description

in certain simple scenarios. They should probably not be used if maximizing performance is the main objective.

Typedef Documentation

◆ size_type

The size type used by cereal.

To ensure compatability between 32, 64, etc bit machines, we need to use a fixed size type instead of size_t, which may vary from machine to machine.

The default value for CEREAL_SIZE_TYPE is specified in cereal/macros.hpp

Enumeration Type Documentation

◆ Flags

Special flags for archives.

AllowEmptyClassElision This allows for empty classes to be serialized even if they do not provide a serialization function. Classes with no data members are considered to be empty. Be warned that if this is enabled and you attempt to serialize an empty class with improperly formed serialize or load/save functions, no static error will occur - the error will propagate silently and your intended serialization functions may not be called. You can manually ensure that your classes that have custom serialization are correct by using the traits is_output_serializable and is_input_serializable in cereal/details/traits.hpp.

Enumerator
AllowEmptyClassElision 

◆ specialization

template<class Archive , class T , specialization S>
enum specialization
related

A specifier used in conjunction with cereal::specialize to disambiguate serialization in special cases

Function Documentation

◆ CEREAL_LOAD_FUNCTION_NAME() [1/50]

template<class Archive , typename ... VariantTypes>
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
boost::variant< VariantTypes... > &  variant 
)
inline

Loading for boost::variant.

◆ CEREAL_LOAD_FUNCTION_NAME() [2/50]

template<class Archive , template< typename... > class Map, typename... Args, typename = typename Map<Args...>::mapped_type>
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
Map< Args... > &  map 
)
inline

Loading for std-like pair associative containers.

◆ CEREAL_LOAD_FUNCTION_NAME() [3/50]

template<class Archive , class T >
std::enable_if<traits::has_load_and_construct<T, Archive>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
memory_detail::PtrWrapper< std::shared_ptr< T > & > &  wrapper 
)
inline

Loading std::shared_ptr, case when user load and construct (wrapper implementation)

◆ CEREAL_LOAD_FUNCTION_NAME() [4/50]

template<class Archive , class T >
std::enable_if<!traits::has_load_and_construct<T, Archive>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
memory_detail::PtrWrapper< std::shared_ptr< T > & > &  wrapper 
)
inline

Loading std::shared_ptr, case when no user load and construct (wrapper implementation)

◆ CEREAL_LOAD_FUNCTION_NAME() [5/50]

template<class Archive , class T , class D >
std::enable_if<traits::has_load_and_construct<T, Archive>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
memory_detail::PtrWrapper< std::unique_ptr< T, D > & > &  wrapper 
)
inline

Loading std::unique_ptr, case when user provides load_and_construct (wrapper implementation)

◆ CEREAL_LOAD_FUNCTION_NAME() [6/50]

template<class Archive , class T , class D >
std::enable_if<!traits::has_load_and_construct<T, Archive>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
memory_detail::PtrWrapper< std::unique_ptr< T, D > & > &  wrapper 
)
inline

Loading std::unique_ptr, case when no load_and_construct (wrapper implementation)

◆ CEREAL_LOAD_FUNCTION_NAME() [7/50]

template<class Archive , class T , size_t N>
std::enable_if<traits::is_input_serializable<BinaryData<T>, Archive>::value && std::is_arithmetic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::array< T, N > &  array 
)
inline

Loading for std::array primitive types using binary serialization, if supported

◆ CEREAL_LOAD_FUNCTION_NAME() [8/50]

template<class Archive , class T , size_t N>
std::enable_if<!traits::is_input_serializable<BinaryData<T>, Archive>::value || !std::is_arithmetic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::array< T, N > &  array 
)
inline

Loading for std::array all other types.

◆ CEREAL_LOAD_FUNCTION_NAME() [9/50]

template<class Archive , class T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::atomic< T > &  a 
)
inline

Serializing (load) for std::atomic.

◆ CEREAL_LOAD_FUNCTION_NAME() [10/50]

template<class Archive , class CharT , class Traits , class Alloc >
std::enable_if<traits::is_input_serializable<BinaryData<CharT>, Archive>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::basic_string< CharT, Traits, Alloc > &  str 
)
inline

Serialization for basic_string types, if binary data is supported.

◆ CEREAL_LOAD_FUNCTION_NAME() [11/50]

template<class Archive , size_t N>
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::bitset< N > &  bits 
)
inline

Serializing (load) for std::bitset.

◆ CEREAL_LOAD_FUNCTION_NAME() [12/50]

template<class Archive , class R , class P >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::chrono::duration< R, P > &  dur 
)
inline

Loading std::chrono::duration.

◆ CEREAL_LOAD_FUNCTION_NAME() [13/50]

template<class Archive , class C , class D >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::chrono::time_point< C, D > &  dur 
)
inline

Loading std::chrono::time_point.

◆ CEREAL_LOAD_FUNCTION_NAME() [14/50]

template<class Archive , class T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::complex< T > &  bits 
)
inline

Serializing (load) for std::complex.

◆ CEREAL_LOAD_FUNCTION_NAME() [15/50]

template<class Archive , class T , class A >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::deque< T, A > &  deque 
)
inline

Loading for std::deque.

◆ CEREAL_LOAD_FUNCTION_NAME() [16/50]

template<class Archive , class T , class A >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::forward_list< T, A > &  forward_list 
)

Loading for std::forward_list all other types from.

◆ CEREAL_LOAD_FUNCTION_NAME() [17/50]

template<class Archive , class T , class A >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::list< T, A > &  list 
)
inline

Loading for std::list.

◆ CEREAL_LOAD_FUNCTION_NAME() [18/50]

template<class Archive , class K , class C , class A >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::multiset< K, C, A > &  multiset 
)
inline

Loading for std::multiset.

◆ CEREAL_LOAD_FUNCTION_NAME() [19/50]

template<class Archive , typename T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::optional< T > &  optional 
)
inline

Loading for std::optional.

◆ CEREAL_LOAD_FUNCTION_NAME() [20/50]

template<class Archive , class T , class C , class Comp >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::priority_queue< T, C, Comp > &  priority_queue 
)
inline

Loading for std::priority_queue.

◆ CEREAL_LOAD_FUNCTION_NAME() [21/50]

template<class Archive , class T , class C >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::queue< T, C > &  queue 
)
inline

Loading for std::queue.

◆ CEREAL_LOAD_FUNCTION_NAME() [22/50]

template<class Archive , class K , class C , class A >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::set< K, C, A > &  set 
)
inline

Loading for std::set.

◆ CEREAL_LOAD_FUNCTION_NAME() [23/50]

template<class Archive , class T >
std::enable_if<!std::is_polymorphic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::shared_ptr< T > &  ptr 
)
inline

Loading std::shared_ptr, case when no user load and construct for non polymorphic types.

◆ CEREAL_LOAD_FUNCTION_NAME() [24/50]

template<class Archive , class T >
std::enable_if<std::is_polymorphic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::shared_ptr< T > &  ptr 
)
inline

Loading std::shared_ptr for polymorphic types.

◆ CEREAL_LOAD_FUNCTION_NAME() [25/50]

template<class Archive , class T , class C >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::stack< T, C > &  stack 
)
inline

Loading for std::stack.

◆ CEREAL_LOAD_FUNCTION_NAME() [26/50]

template<class Archive , class T , class D >
std::enable_if<!std::is_polymorphic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::unique_ptr< T, D > &  ptr 
)
inline

Loading std::unique_ptr, case when user provides load_and_construct for non polymorphic types.

◆ CEREAL_LOAD_FUNCTION_NAME() [27/50]

template<class Archive , class T , class D >
std::enable_if<std::is_polymorphic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::unique_ptr< T, D > &  ptr 
)
inline

Loading std::unique_ptr, case when user provides load_and_construct for polymorphic types.

◆ CEREAL_LOAD_FUNCTION_NAME() [28/50]

template<class Archive , class K , class H , class KE , class A >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::unordered_multiset< K, H, KE, A > &  unordered_multiset 
)
inline

Loading for std::unordered_multiset.

◆ CEREAL_LOAD_FUNCTION_NAME() [29/50]

template<class Archive , class K , class H , class KE , class A >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::unordered_set< K, H, KE, A > &  unordered_set 
)
inline

Loading for std::unordered_set.

◆ CEREAL_LOAD_FUNCTION_NAME() [30/50]

template<class Archive , class T >
std::enable_if<traits::is_input_serializable<BinaryData<T>, Archive>::value && std::is_arithmetic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::valarray< T > &  valarray 
)
inline

Loading for std::valarray arithmetic types, using binary serialization, if supported.

◆ CEREAL_LOAD_FUNCTION_NAME() [31/50]

template<class Archive , class T >
std::enable_if<!traits::is_input_serializable<BinaryData<T>, Archive>::value || !std::is_arithmetic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::valarray< T > &  valarray 
)
inline

Loading for std::valarray all other types.

◆ CEREAL_LOAD_FUNCTION_NAME() [32/50]

template<class Archive , typename... VariantTypes>
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::variant< VariantTypes... > &  variant 
)
inline

Loading for std::variant.

◆ CEREAL_LOAD_FUNCTION_NAME() [33/50]

template<class Archive , class A >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::vector< bool, A > &  vector 
)
inline

Serialization for bool vector types.

◆ CEREAL_LOAD_FUNCTION_NAME() [34/50]

template<class Archive , class T , class A >
std::enable_if<traits::is_input_serializable<BinaryData<T>, Archive>::value && std::is_arithmetic<T>::value && !std::is_same<T, bool>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::vector< T, A > &  vector 
)
inline

Serialization for std::vectors of arithmetic (but not bool) using binary serialization, if supported.

◆ CEREAL_LOAD_FUNCTION_NAME() [35/50]

template<class Archive , class T , class A >
std::enable_if<(!traits::is_input_serializable<BinaryData<T>, Archive>::value || !std::is_arithmetic<T>::value) && !std::is_same<T, bool>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::vector< T, A > &  vector 
)
inline

Serialization for non-arithmetic vector types.

◆ CEREAL_LOAD_FUNCTION_NAME() [36/50]

template<class Archive , class T >
std::enable_if<!std::is_polymorphic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::weak_ptr< T > &  ptr 
)
inline

Loading std::weak_ptr for non polymorphic types.

◆ CEREAL_LOAD_FUNCTION_NAME() [37/50]

template<class Archive , class T >
std::enable_if<std::is_polymorphic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( Archive &  ar,
std::weak_ptr< T > &  ptr 
)
inline

Loading std::weak_ptr for polymorphic types.

◆ CEREAL_LOAD_FUNCTION_NAME() [38/50]

template<class T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( BinaryInputArchive ar,
BinaryData< T > &  bd 
)
inline

Loading binary data.

◆ CEREAL_LOAD_FUNCTION_NAME() [39/50]

template<class T >
std::enable_if<std::is_arithmetic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( BinaryInputArchive ar,
T &  t 
)
inline

Loading for POD types from binary.

◆ CEREAL_LOAD_FUNCTION_NAME() [40/50]

template<class T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( JSONInputArchive ar,
NameValuePair< T > &  t 
)
inline

◆ CEREAL_LOAD_FUNCTION_NAME() [41/50]

template<class T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( JSONInputArchive ar,
SizeTag< T > &  st 
)
inline

Loading SizeTags from JSON.

◆ CEREAL_LOAD_FUNCTION_NAME() [42/50]

template<class CharT , class Traits , class Alloc >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( JSONInputArchive ar,
std::basic_string< CharT, Traits, Alloc > &  str 
)
inline

loading string from JSON

◆ CEREAL_LOAD_FUNCTION_NAME() [43/50]

void cereal::CEREAL_LOAD_FUNCTION_NAME ( JSONInputArchive ar,
std::nullptr_t &  t 
)
inline

Loading arithmetic from JSON.

◆ CEREAL_LOAD_FUNCTION_NAME() [44/50]

template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae>
void cereal::CEREAL_LOAD_FUNCTION_NAME ( JSONInputArchive ar,
T &  t 
)
inline

Loading arithmetic from JSON.

◆ CEREAL_LOAD_FUNCTION_NAME() [45/50]

template<class T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( PortableBinaryInputArchive ar,
BinaryData< T > &  bd 
)
inline

Loading binary data from portable binary.

◆ CEREAL_LOAD_FUNCTION_NAME() [46/50]

template<class T >
std::enable_if<std::is_arithmetic<T>::value, void>::type cereal::CEREAL_LOAD_FUNCTION_NAME ( PortableBinaryInputArchive ar,
T &  t 
)
inline

Loading for POD types from portable binary.

◆ CEREAL_LOAD_FUNCTION_NAME() [47/50]

template<class T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( XMLInputArchive ar,
NameValuePair< T > &  t 
)
inline

Loading NVP types from XML.

◆ CEREAL_LOAD_FUNCTION_NAME() [48/50]

template<class T >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( XMLInputArchive ar,
SizeTag< T > &  st 
)
inline

Loading SizeTags from XML.

◆ CEREAL_LOAD_FUNCTION_NAME() [49/50]

template<class CharT , class Traits , class Alloc >
void cereal::CEREAL_LOAD_FUNCTION_NAME ( XMLInputArchive ar,
std::basic_string< CharT, Traits, Alloc > &  str 
)
inline

loading string from xml

◆ CEREAL_LOAD_FUNCTION_NAME() [50/50]

template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae>
void cereal::CEREAL_LOAD_FUNCTION_NAME ( XMLInputArchive ar,
T &  t 
)
inline

Loading for POD types from xml.

◆ CEREAL_LOAD_MINIMAL_FUNCTION_NAME()

template<class Archive , class T >
std::enable_if<common_detail::is_enum<T>::value, void>::type cereal::CEREAL_LOAD_MINIMAL_FUNCTION_NAME ( Archive const ,
T &&  t,
typename common_detail::is_enum< T >::base_type const value 
)
inline

Loading for enum types.

◆ CEREAL_SAVE_FUNCTION_NAME() [1/50]

template<class Archive , typename ... VariantTypes>
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
boost::variant< VariantTypes... > const variant 
)
inline

Saving for boost::variant.

◆ CEREAL_SAVE_FUNCTION_NAME() [2/50]

template<class Archive , typename T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
const std::optional< T > &  optional 
)
inline

Saving for std::optional.

◆ CEREAL_SAVE_FUNCTION_NAME() [3/50]

template<class Archive , template< typename... > class Map, typename... Args, typename = typename Map<Args...>::mapped_type>
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
Map< Args... > const map 
)
inline

Saving for std-like pair associative containers.

◆ CEREAL_SAVE_FUNCTION_NAME() [4/50]

template<class Archive , class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
memory_detail::PtrWrapper< std::shared_ptr< T > const & > const wrapper 
)
inline

Saving std::shared_ptr (wrapper implementation)

◆ CEREAL_SAVE_FUNCTION_NAME() [5/50]

template<class Archive , class T , class D >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
memory_detail::PtrWrapper< std::unique_ptr< T, D > const & > const wrapper 
)
inline

Saving std::unique_ptr (wrapper implementation)

◆ CEREAL_SAVE_FUNCTION_NAME() [6/50]

template<class Archive , class T , size_t N>
std::enable_if<traits::is_output_serializable<BinaryData<T>, Archive>::value && std::is_arithmetic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::array< T, N > const array 
)
inline

Saving for std::array primitive types using binary serialization, if supported

◆ CEREAL_SAVE_FUNCTION_NAME() [7/50]

template<class Archive , class T , size_t N>
std::enable_if<!traits::is_output_serializable<BinaryData<T>, Archive>::value || !std::is_arithmetic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::array< T, N > const array 
)
inline

Saving for std::array all other types.

◆ CEREAL_SAVE_FUNCTION_NAME() [8/50]

template<class Archive , class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::atomic< T > const a 
)
inline

Serializing (save) for std::atomic.

◆ CEREAL_SAVE_FUNCTION_NAME() [9/50]

template<class Archive , class CharT , class Traits , class Alloc >
std::enable_if<traits::is_output_serializable<BinaryData<CharT>, Archive>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::basic_string< CharT, Traits, Alloc > const str 
)
inline

Serialization for basic_string types, if binary data is supported.

◆ CEREAL_SAVE_FUNCTION_NAME() [10/50]

template<class Archive , size_t N, traits::EnableIf< traits::is_output_serializable< BinaryData< std::uint32_t >, Archive >::value > = traits::sfinae>
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::bitset< N > const bits 
)
inline

Serializing (save) for std::bitset when BinaryData optimization supported.

Serializing (save) for std::bitset when BinaryData is not supported.

◆ CEREAL_SAVE_FUNCTION_NAME() [11/50]

template<class Archive , class R , class P >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::chrono::duration< R, P > const dur 
)
inline

Saving std::chrono::duration.

◆ CEREAL_SAVE_FUNCTION_NAME() [12/50]

template<class Archive , class C , class D >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::chrono::time_point< C, D > const dur 
)
inline

Saving std::chrono::time_point.

◆ CEREAL_SAVE_FUNCTION_NAME() [13/50]

template<class Archive , class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::complex< T > const comp 
)
inline

Serializing (save) for std::complex.

◆ CEREAL_SAVE_FUNCTION_NAME() [14/50]

template<class Archive , class T , class A >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::deque< T, A > const deque 
)
inline

Saving for std::deque.

◆ CEREAL_SAVE_FUNCTION_NAME() [15/50]

template<class Archive , class T , class A >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::forward_list< T, A > const forward_list 
)
inline

Saving for std::forward_list all other types.

◆ CEREAL_SAVE_FUNCTION_NAME() [16/50]

template<class Archive , class T , class A >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::list< T, A > const list 
)
inline

Saving for std::list.

◆ CEREAL_SAVE_FUNCTION_NAME() [17/50]

template<class Archive , class K , class C , class A >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::multiset< K, C, A > const multiset 
)
inline

Saving for std::multiset.

◆ CEREAL_SAVE_FUNCTION_NAME() [18/50]

template<class Archive , class T , class C , class Comp >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::priority_queue< T, C, Comp > const priority_queue 
)
inline

Saving for std::priority_queue.

◆ CEREAL_SAVE_FUNCTION_NAME() [19/50]

template<class Archive , class T , class C >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::queue< T, C > const queue 
)
inline

Saving for std::queue.

◆ CEREAL_SAVE_FUNCTION_NAME() [20/50]

template<class Archive , class K , class C , class A >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::set< K, C, A > const set 
)
inline

Saving for std::set.

◆ CEREAL_SAVE_FUNCTION_NAME() [21/50]

template<class Archive , class T >
std::enable_if<!std::is_polymorphic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::shared_ptr< T > const ptr 
)
inline

Saving std::shared_ptr for non polymorphic types.

◆ CEREAL_SAVE_FUNCTION_NAME() [22/50]

template<class Archive , class T >
std::enable_if<std::is_polymorphic<T>::value && std::is_abstract<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::shared_ptr< T > const ptr 
)
inline

Saving std::shared_ptr for polymorphic types, abstract.

◆ CEREAL_SAVE_FUNCTION_NAME() [23/50]

template<class Archive , class T >
std::enable_if<std::is_polymorphic<T>::value && !std::is_abstract<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::shared_ptr< T > const ptr 
)
inline

Saving std::shared_ptr for polymorphic types, not abstract.

◆ CEREAL_SAVE_FUNCTION_NAME() [24/50]

template<class Archive , class T , class C >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::stack< T, C > const stack 
)
inline

Saving for std::stack.

◆ CEREAL_SAVE_FUNCTION_NAME() [25/50]

template<class Archive , class T , class D >
std::enable_if<!std::is_polymorphic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::unique_ptr< T, D > const ptr 
)
inline

Saving std::unique_ptr for non polymorphic types.

◆ CEREAL_SAVE_FUNCTION_NAME() [26/50]

template<class Archive , class T , class D >
std::enable_if<std::is_polymorphic<T>::value && std::is_abstract<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::unique_ptr< T, D > const ptr 
)
inline

Saving std::unique_ptr for polymorphic types that are abstract.

◆ CEREAL_SAVE_FUNCTION_NAME() [27/50]

template<class Archive , class T , class D >
std::enable_if<std::is_polymorphic<T>::value && !std::is_abstract<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::unique_ptr< T, D > const ptr 
)
inline

Saving std::unique_ptr for polymorphic types, not abstract.

◆ CEREAL_SAVE_FUNCTION_NAME() [28/50]

template<class Archive , class K , class H , class KE , class A >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::unordered_multiset< K, H, KE, A > const unordered_multiset 
)
inline

Saving for std::unordered_multiset.

◆ CEREAL_SAVE_FUNCTION_NAME() [29/50]

template<class Archive , class K , class H , class KE , class A >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::unordered_set< K, H, KE, A > const unordered_set 
)
inline

Saving for std::unordered_set.

◆ CEREAL_SAVE_FUNCTION_NAME() [30/50]

template<class Archive , class T >
std::enable_if<traits::is_output_serializable<BinaryData<T>, Archive>::value && std::is_arithmetic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::valarray< T > const valarray 
)
inline

Saving for std::valarray arithmetic types, using binary serialization, if supported.

◆ CEREAL_SAVE_FUNCTION_NAME() [31/50]

template<class Archive , class T >
std::enable_if<!traits::is_output_serializable<BinaryData<T>, Archive>::value || !std::is_arithmetic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::valarray< T > const valarray 
)
inline

Saving for std::valarray all other types.

◆ CEREAL_SAVE_FUNCTION_NAME() [32/50]

template<class Archive , typename VariantType1 , typename... VariantTypes>
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::variant< VariantType1, VariantTypes... > const variant 
)
inline

Saving for std::variant.

◆ CEREAL_SAVE_FUNCTION_NAME() [33/50]

template<class Archive , class A >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::vector< bool, A > const vector 
)
inline

Serialization for bool vector types.

◆ CEREAL_SAVE_FUNCTION_NAME() [34/50]

template<class Archive , class T , class A >
std::enable_if<traits::is_output_serializable<BinaryData<T>, Archive>::value && std::is_arithmetic<T>::value && !std::is_same<T, bool>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::vector< T, A > const vector 
)
inline

Serialization for std::vectors of arithmetic (but not bool) using binary serialization, if supported.

◆ CEREAL_SAVE_FUNCTION_NAME() [35/50]

template<class Archive , class T , class A >
std::enable_if<(!traits::is_output_serializable<BinaryData<T>, Archive>::value || !std::is_arithmetic<T>::value) && !std::is_same<T, bool>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::vector< T, A > const vector 
)
inline

Serialization for non-arithmetic vector types.

◆ CEREAL_SAVE_FUNCTION_NAME() [36/50]

template<class Archive , class T >
std::enable_if<!std::is_polymorphic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::weak_ptr< T > const ptr 
)
inline

Saving std::weak_ptr for non polymorphic types.

◆ CEREAL_SAVE_FUNCTION_NAME() [37/50]

template<class Archive , class T >
std::enable_if<std::is_polymorphic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( Archive &  ar,
std::weak_ptr< T > const ptr 
)
inline

Saving std::weak_ptr for polymorphic types.

◆ CEREAL_SAVE_FUNCTION_NAME() [38/50]

template<class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( BinaryOutputArchive ar,
BinaryData< T > const bd 
)
inline

Saving binary data.

◆ CEREAL_SAVE_FUNCTION_NAME() [39/50]

template<class T >
std::enable_if<std::is_arithmetic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( BinaryOutputArchive ar,
T const t 
)
inline

Saving for POD types to binary.

◆ CEREAL_SAVE_FUNCTION_NAME() [40/50]

template<class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( JSONOutputArchive ,
SizeTag< T > const  
)
inline

Saving SizeTags to JSON.

◆ CEREAL_SAVE_FUNCTION_NAME() [41/50]

template<class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( JSONOutputArchive ar,
NameValuePair< T > const t 
)
inline

Serializing NVP types to JSON.

◆ CEREAL_SAVE_FUNCTION_NAME() [42/50]

template<class CharT , class Traits , class Alloc >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( JSONOutputArchive ar,
std::basic_string< CharT, Traits, Alloc > const str 
)
inline

saving string to JSON

◆ CEREAL_SAVE_FUNCTION_NAME() [43/50]

void cereal::CEREAL_SAVE_FUNCTION_NAME ( JSONOutputArchive ar,
std::nullptr_t const t 
)
inline

Saving for nullptr to JSON.

◆ CEREAL_SAVE_FUNCTION_NAME() [44/50]

template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae>
void cereal::CEREAL_SAVE_FUNCTION_NAME ( JSONOutputArchive ar,
T const t 
)
inline

Saving for arithmetic to JSON.

◆ CEREAL_SAVE_FUNCTION_NAME() [45/50]

template<class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( PortableBinaryOutputArchive ar,
BinaryData< T > const bd 
)
inline

Saving binary data to portable binary.

◆ CEREAL_SAVE_FUNCTION_NAME() [46/50]

template<class T >
std::enable_if<std::is_arithmetic<T>::value, void>::type cereal::CEREAL_SAVE_FUNCTION_NAME ( PortableBinaryOutputArchive ar,
T const t 
)
inline

Saving for POD types to portable binary.

◆ CEREAL_SAVE_FUNCTION_NAME() [47/50]

template<class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( XMLOutputArchive ,
SizeTag< T > const  
)
inline

Saving SizeTags to XML.

◆ CEREAL_SAVE_FUNCTION_NAME() [48/50]

template<class T >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( XMLOutputArchive ar,
NameValuePair< T > const t 
)
inline

Saving NVP types to XML.

◆ CEREAL_SAVE_FUNCTION_NAME() [49/50]

template<class CharT , class Traits , class Alloc >
void cereal::CEREAL_SAVE_FUNCTION_NAME ( XMLOutputArchive ar,
std::basic_string< CharT, Traits, Alloc > const str 
)
inline

saving string to xml

◆ CEREAL_SAVE_FUNCTION_NAME() [50/50]

template<class T , traits::EnableIf< std::is_arithmetic< T >::value > = traits::sfinae>
void cereal::CEREAL_SAVE_FUNCTION_NAME ( XMLOutputArchive ar,
T const t 
)
inline

Saving for POD types to xml.

◆ CEREAL_SAVE_MINIMAL_FUNCTION_NAME()

template<class Archive , class T >
std::enable_if<common_detail::is_enum<T>::value, typename common_detail::is_enum<T>::base_type>::type cereal::CEREAL_SAVE_MINIMAL_FUNCTION_NAME ( Archive const ,
T const t 
)
inline

Saving for enum types.

◆ CEREAL_SERIALIZE_FUNCTION_NAME() [1/7]

template<class Archive >
void cereal::CEREAL_SERIALIZE_FUNCTION_NAME ( Archive &  ,
std::monostate const  
)

Serializing a std::monostate.

◆ CEREAL_SERIALIZE_FUNCTION_NAME() [2/7]

template<class Archive , class T >
void cereal::CEREAL_SERIALIZE_FUNCTION_NAME ( Archive &  ,
T *&   
)
inline

Serialization for raw pointers.

This exists only to throw a static_assert to let users know we don't support raw pointers.

◆ CEREAL_SERIALIZE_FUNCTION_NAME() [3/7]

template<class Archive , class T >
cereal::CEREAL_SERIALIZE_FUNCTION_NAME ( Archive &  ar,
NameValuePair< T > &  t 
)
inline

Serializing NVP types to binary.

Serializing NVP types to portable binary.

◆ CEREAL_SERIALIZE_FUNCTION_NAME() [4/7]

template<class Archive , class T >
cereal::CEREAL_SERIALIZE_FUNCTION_NAME ( Archive &  ar,
SizeTag< T > &  t 
)
inline

Serializing SizeTags to binary.

Serializing SizeTags to portable binary.

◆ CEREAL_SERIALIZE_FUNCTION_NAME() [5/7]

template<class Archive , class T1 , class T2 >
void cereal::CEREAL_SERIALIZE_FUNCTION_NAME ( Archive &  ar,
std::pair< T1, T2 > &  pair 
)
inline

Serializing for std::pair.

◆ CEREAL_SERIALIZE_FUNCTION_NAME() [6/7]

template<class Archive , class ... Types>
void cereal::CEREAL_SERIALIZE_FUNCTION_NAME ( Archive &  ar,
std::tuple< Types... > &  tuple 
)
inline

Serializing for std::tuple.

◆ CEREAL_SERIALIZE_FUNCTION_NAME() [7/7]

template<class Archive , class T >
std::enable_if<std::is_array<T>::value, void>::type cereal::CEREAL_SERIALIZE_FUNCTION_NAME ( Archive &  ar,
T &  array 
)
inline

Serialization for C style arrays.

◆ epilogue() [1/21]

template<class Archive , class T >
void cereal::epilogue ( Archive &  ,
T const  
)
inline

Called after a type is serialized to tear down any special archive state for processing some type

◆ epilogue() [2/21]

template<class T >
void cereal::epilogue ( JSONInputArchive ,
DeferredData< T > const  
)
inline

Epilogue for deferred for JSON archives.

Do nothing for the defer wrapper

◆ epilogue() [3/21]

template<class T >
void cereal::epilogue ( JSONInputArchive ,
NameValuePair< T > const  
)
inline

Epilogue for NVPs for JSON archives.

NVPs do not start or finish nodes - they just set up the names

◆ epilogue() [4/21]

template<class T >
void cereal::epilogue ( JSONInputArchive ,
SizeTag< T > const  
)
inline

Epilogue for SizeTags for JSON archives.

◆ epilogue() [5/21]

template<class CharT , class Traits , class Alloc >
void cereal::epilogue ( JSONInputArchive ,
std::basic_string< CharT, Traits, Alloc > const  
)
inline

Epilogue for strings for JSON archives.

◆ epilogue() [6/21]

void cereal::epilogue ( JSONInputArchive ,
std::nullptr_t const  
)
inline

Epilogue for arithmetic types for JSON archives.

◆ epilogue() [7/21]

template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, JSONInputArchive >::value, !traits::has_minimal_input_serialization< T, JSONInputArchive >::value > = traits::sfinae>
void cereal::epilogue ( JSONInputArchive ar,
T const  
)
inline

Epilogue for all other types other for JSON archives.

Epilogue for arithmetic types for JSON archives.

◆ epilogue() [8/21]

template<class T >
void cereal::epilogue ( JSONOutputArchive ,
DeferredData< T > const  
)
inline

Epilogue for deferred for JSON archives.

NVPs do not start or finish nodes - they just set up the names

◆ epilogue() [9/21]

template<class T >
void cereal::epilogue ( JSONOutputArchive ,
NameValuePair< T > const  
)
inline

Epilogue for NVPs for JSON archives.

NVPs do not start or finish nodes - they just set up the names

◆ epilogue() [10/21]

template<class T >
void cereal::epilogue ( JSONOutputArchive ,
SizeTag< T > const  
)
inline

Epilogue for SizeTags for JSON archives.

SizeTags are strictly ignored for JSON

◆ epilogue() [11/21]

template<class CharT , class Traits , class Alloc >
void cereal::epilogue ( JSONOutputArchive ,
std::basic_string< CharT, Traits, Alloc > const  
)
inline

Epilogue for strings for JSON archives.

◆ epilogue() [12/21]

void cereal::epilogue ( JSONOutputArchive ,
std::nullptr_t const  
)
inline

Epilogue for arithmetic types for JSON archives.

◆ epilogue() [13/21]

template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, JSONOutputArchive >::value, !traits::has_minimal_output_serialization< T, JSONOutputArchive >::value > = traits::sfinae>
void cereal::epilogue ( JSONOutputArchive ar,
T const  
)
inline

Epilogue for all other types other for JSON archives (except minimal types)

Epilogue for arithmetic types for JSON archives.

Finishes the node created in the prologue

Minimal types do not start or finish nodes

◆ epilogue() [14/21]

template<class T >
void cereal::epilogue ( XMLInputArchive ,
DeferredData< T > const  
)
inline

Epilogue for deferred for XML archives.

Do nothing for the defer wrapper

◆ epilogue() [15/21]

template<class T >
void cereal::epilogue ( XMLInputArchive ,
NameValuePair< T > const  
)
inline

Epilogue for NVPs for XML input archives.

◆ epilogue() [16/21]

template<class T >
void cereal::epilogue ( XMLInputArchive ,
SizeTag< T > const  
)
inline

◆ epilogue() [17/21]

template<class T , traits::DisableIf< traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, XMLInputArchive >::value||traits::has_minimal_input_serialization< T, XMLInputArchive >::value > = traits::sfinae>
void cereal::epilogue ( XMLInputArchive ar,
T const  
)
inline

Epilogue for all other types other for XML output archives (except minimal types)

◆ epilogue() [18/21]

template<class T >
void cereal::epilogue ( XMLOutputArchive ,
DeferredData< T > const  
)
inline

Epilogue for deferred for XML archives.

NVPs do not start or finish nodes - they just set up the names

◆ epilogue() [19/21]

template<class T >
void cereal::epilogue ( XMLOutputArchive ,
NameValuePair< T > const  
)
inline

Epilogue for NVPs for XML output archives.

NVPs do not start or finish nodes - they just set up the names

◆ epilogue() [20/21]

template<class T >
void cereal::epilogue ( XMLOutputArchive ,
SizeTag< T > const  
)
inline

Epilogue for SizeTags for XML output archives.

SizeTags do not start or finish nodes

◆ epilogue() [21/21]

template<class T , traits::DisableIf< traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, XMLOutputArchive >::value||traits::has_minimal_output_serialization< T, XMLOutputArchive >::value > = traits::sfinae>
void cereal::epilogue ( XMLOutputArchive ar,
T const  
)
inline

Epilogue for all other types other for XML output archives (except minimal types)

Finishes the node created in the prologue

Minimal types do not start or end nodes

◆ make_map_item()

template<class KeyType , class ValueType >
MapItem<KeyType, ValueType> cereal::make_map_item ( KeyType &&  key,
ValueType &&  value 
)
inline

Create a MapItem so that human readable archives will group keys and values together.

◆ prologue() [1/21]

template<class Archive , class T >
void cereal::prologue ( Archive &  ,
T const  
)
inline

Called before a type is serialized to set up any special archive state for processing some type

If designing a serializer that needs to set up any kind of special state or output extra information for a type, specialize this function for the archive type and the types that require the extra information.

◆ prologue() [2/21]

template<class T >
void cereal::prologue ( JSONInputArchive ,
DeferredData< T > const  
)
inline

Prologue for deferred data for JSON archives.

◆ prologue() [3/21]

template<class T >
void cereal::prologue ( JSONInputArchive ,
NameValuePair< T > const  
)
inline

Prologue for NVPs for JSON archives.

◆ prologue() [4/21]

template<class T >
void cereal::prologue ( JSONInputArchive ,
SizeTag< T > const  
)
inline

Prologue for SizeTags for JSON archives.

◆ prologue() [5/21]

template<class CharT , class Traits , class Alloc >
void cereal::prologue ( JSONInputArchive ,
std::basic_string< CharT, Traits, Alloc > const  
)
inline

Prologue for strings for JSON archives.

◆ prologue() [6/21]

void cereal::prologue ( JSONInputArchive ,
std::nullptr_t const  
)
inline

Prologue for arithmetic types for JSON archives.

◆ prologue() [7/21]

template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, JSONInputArchive >::value, !traits::has_minimal_input_serialization< T, JSONInputArchive >::value > = traits::sfinae>
void cereal::prologue ( JSONInputArchive ar,
T const  
)
inline

Prologue for all other types for JSON archives.

Prologue for arithmetic types for JSON archives.

◆ prologue() [8/21]

template<class T >
void cereal::prologue ( JSONOutputArchive ,
DeferredData< T > const  
)
inline

Prologue for deferred data for JSON archives.

Do nothing for the defer wrapper

◆ prologue() [9/21]

template<class T >
void cereal::prologue ( JSONOutputArchive ,
NameValuePair< T > const  
)
inline

Prologue for NVPs for JSON archives.

NVPs do not start or finish nodes - they just set up the names

◆ prologue() [10/21]

template<class T >
void cereal::prologue ( JSONOutputArchive ar,
SizeTag< T > const  
)
inline

Prologue for SizeTags for JSON archives.

SizeTags are strictly ignored for JSON, they just indicate that the current node should be made into an array

◆ prologue() [11/21]

template<class CharT , class Traits , class Alloc >
void cereal::prologue ( JSONOutputArchive ar,
std::basic_string< CharT, Traits, Alloc > const  
)
inline

Prologue for strings for JSON archives.

◆ prologue() [12/21]

void cereal::prologue ( JSONOutputArchive ar,
std::nullptr_t const  
)
inline

Prologue for arithmetic types for JSON archives.

◆ prologue() [13/21]

template<class T , traits::EnableIf<!std::is_arithmetic< T >::value, !traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, JSONOutputArchive >::value, !traits::has_minimal_output_serialization< T, JSONOutputArchive >::value > = traits::sfinae>
void cereal::prologue ( JSONOutputArchive ar,
T const  
)
inline

Prologue for all other types for JSON archives (except minimal types)

Prologue for arithmetic types for JSON archives.

Starts a new node, named either automatically or by some NVP, that may be given data by the type about to be archived

Minimal types do not start or finish nodes

◆ prologue() [14/21]

template<class T >
void cereal::prologue ( XMLInputArchive ,
DeferredData< T > const  
)
inline

Prologue for deferred data for XML archives.

◆ prologue() [15/21]

template<class T >
void cereal::prologue ( XMLInputArchive ,
NameValuePair< T > const  
)
inline

Prologue for NVPs for XML input archives.

◆ prologue() [16/21]

template<class T >
void cereal::prologue ( XMLInputArchive ,
SizeTag< T > const  
)
inline

◆ prologue() [17/21]

template<class T , traits::DisableIf< traits::has_minimal_base_class_serialization< T, traits::has_minimal_input_serialization, XMLInputArchive >::value||traits::has_minimal_input_serialization< T, XMLInputArchive >::value > = traits::sfinae>
void cereal::prologue ( XMLInputArchive ar,
T const  
)
inline

Prologue for all other types for XML input archives (except minimal types)

◆ prologue() [18/21]

template<class T >
void cereal::prologue ( XMLOutputArchive ,
DeferredData< T > const  
)
inline

Prologue for deferred data for XML archives.

Do nothing for the defer wrapper

◆ prologue() [19/21]

template<class T >
void cereal::prologue ( XMLOutputArchive ,
NameValuePair< T > const  
)
inline

Prologue for NVPs for XML output archives.

NVPs do not start or finish nodes - they just set up the names

◆ prologue() [20/21]

template<class T >
void cereal::prologue ( XMLOutputArchive ar,
SizeTag< T > const  
)
inline

Prologue for SizeTags for XML output archives.

SizeTags do not start or finish nodes

◆ prologue() [21/21]

template<class T , traits::DisableIf< traits::has_minimal_base_class_serialization< T, traits::has_minimal_output_serialization, XMLOutputArchive >::value||traits::has_minimal_output_serialization< T, XMLOutputArchive >::value > = traits::sfinae>
void cereal::prologue ( XMLOutputArchive ar,
T const  
)
inline

Prologue for all other types for XML output archives (except minimal types)

Starts a new node, named either automatically or by some NVP, that may be given data by the type about to be archived

Minimal types do not start or end nodes

◆ serialize()

template<class Archive , class T >
void cereal::serialize ( Archive &  ,
std::less< T > &   
)
inline

Saving for std::less.