cereal
A C++11 library for serialization
Classes | Macros | Typedefs | 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
 
struct  cereal::detail::DeferredDataCore
 
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::DeferredData< T >
 A wrapper around data that should be serialized after all non-deferred data. 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...
 
struct  cereal::MapItem< Key, Value >
 A wrapper around a key and value for serializing data into maps. 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 = CEREAL_SIZE_TYPE
 The size type used by cereal. More...
 

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.
 

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

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