helpers.hpp File Reference
Internal Functionality

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...
struct | cereal::detail::DeferredDataCore
| Traits struct for DeferredData. 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::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

using cereal::size_type = typedef CEREAL_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