cereal_fwd
Fork of cereal library adding archive supporting forward compatibility
Classes | Macros | Typedefs | Enumerations | Functions
helpers.hpp File Reference

Internal helper functionality. More...

#include <type_traits>
#include <cstdint>
#include <utility>
#include <memory>
#include <unordered_map>
#include <stdexcept>
#include <cereal/macros.hpp>
#include <cereal/details/static_object.hpp>

Go to the source code of this file.

Classes

struct  cereal::Exception
 An exception class thrown when things go wrong at runtime. More...
 
struct  cereal::detail::NameValuePairCore
 Traits struct for NVPs. More...
 
class  cereal::NameValuePair< T >
 For holding name value pairs. More...
 
struct  cereal::BinaryData< T >
 A wrapper around data that can be serialized in a binary fashion. More...
 
class  cereal::detail::OutputArchiveBase
 
class  cereal::detail::InputArchiveBase
 
struct  cereal::detail::polymorphic_serialization_support< Archive, T >
 
class  cereal::SizeTag< T >
 A wrapper around size metadata. More...
 
class  cereal::OmittedFieldTag
 Tag used to indicate that field is ommited from the archive. More...
 
struct  cereal::MapItem< Key, Value >
 A wrapper around a key and value for serializing data into maps. More...
 
class  cereal::detail::VersionIdTag< T >
 A wrapper around polymorphic id. More...
 
class  cereal::detail::PolymorphicIdTag< T >
 A wrapper around polymorphic id. More...
 
class  cereal::detail::PolymorphicKeyTag< T >
 A wrapper around polymorphic key. More...
 
class  cereal::detail::ObjectIdTag< T >
 A wrapper around object id. More...
 
class  cereal::detail::PointerValidityTag< T >
 A wrapper around pointer validity marker. More...
 
struct  cereal::detail::Version< T, BindingTag >
 Version information class. More...
 
struct  cereal::detail::Versions
 Holds all registered version information. More...
 

Macros

#define CEREAL_NVP_(name, value)   ::cereal::make_nvp<Archive>(name, value)
 Convenience for creating a templated NVP. More...
 

Typedefs

using cereal::size_type = uint64_t
 The size type used by cereal. More...
 

Enumerations

enum  FieldSerialized { YES, NO, INTERNAL }
 

Functions

template<class KeyType , class ValueType >
MapItem< KeyType, ValueType > cereal::make_map_item (KeyType &&key, ValueType &&value)
 Create a MapItem so that human readable archives will group keys and values together.
 
template<class T >
PolymorphicIdTag< T > cereal::detail::make_polymorphic_id_tag (T &&polymorphic_id)
 
template<class T >
PolymorphicKeyTag< T > cereal::detail::make_polymorphic_key_tag (T &&polymorphic_key)
 
template<class T >
ObjectIdTag< T > cereal::detail::make_object_id_tag (T &&object_id)
 
template<class T >
PointerValidityTag< T > cereal::detail::make_pointer_validity_tag (T &&valid)
 

Detailed Description

Internal helper functionality.

Macro Definition Documentation

◆ CEREAL_NVP_

#define CEREAL_NVP_ (   name,
  value 
)    ::cereal::make_nvp<Archive>(name, value)

Convenience for creating a templated NVP.

For use in internal generic typing functions which have an Archive type declared

Typedef Documentation

◆ size_type

using cereal::size_type = typedef uint64_t

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.