helpers.hpp(3) Library Functions Manual helpers.hpp(3)

# [NAME](#NAME)

helpers.hpp - Internal helper functionality.

# [SYNOPSIS](#SYNOPSIS)

#include &lt;type\_traits&gt;  
#include &lt;cstdint&gt;  
#include &lt;utility&gt;  
#include &lt;memory&gt;  
#include &lt;unordered\_map&gt;  
#include &lt;stdexcept&gt;  
#include 'cereal/macros.hpp'  
#include 'cereal/details/static\_object.hpp'

## [Classes](#Classes)

struct **cereal::Exception**  
An exception class thrown when things go wrong at runtime. struct **cereal::detail::NameValuePairCore**  
Traits struct for NVPs. struct **cereal::detail::DeferredDataCore**  
Traits struct for **DeferredData**. class **cereal::NameValuePair&lt; T &gt;**  
For holding name value pairs. struct **cereal::BinaryData&lt; T &gt;**  
A wrapper around data that can be serialized in a binary fashion. class **cereal::DeferredData&lt; T &gt;**  
A wrapper around data that should be serialized after all non-deferred data. class **cereal::detail::OutputArchiveBase**  
class **cereal::detail::InputArchiveBase**  
class **cereal::SizeTag&lt; T &gt;**  
A wrapper around size metadata. struct **cereal::MapItem&lt; Key, Value &gt;**  
A wrapper around a key and value for serializing data into maps. struct **cereal::detail::Version&lt; T, BindingTag &gt;**  
**Version** information class. struct **cereal::detail::Versions**  
Holds all registered version information.

## [Macros](#Macros)

#define **CEREAL\_NVP\_**(name, value)  
Convenience for creating a templated NVP.

## [Typedefs](#Typedefs)

using **cereal::size\_type** = **CEREAL\_SIZE\_TYPE**  
The size type used by cereal.

## [Functions](#Functions)

template&lt;class KeyType, class ValueType&gt; **MapItem**&lt; KeyType, ValueType &gt; **cereal::make\_map\_item** (KeyType &&key, ValueType &&value)  
Create a **MapItem** so that human readable archives will group keys and values together.

# [Detailed Description](#Detailed_Description)

Internal helper functionality.

# [Macro Definition Documentation](#Macro_Definition_Documentation)

## [#define CEREAL\_NVP\_( name, value)](#_define_CEREAL_NVP_%28_name,__value%29)

**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](#Typedef_Documentation)

## [using **cereal::size\_type** = **CEREAL\_SIZE\_TYPE**](#using_)

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**

# [Author](#Author)

Generated automatically by Doxygen for cereal from the source code.

Mon Oct 26 2026 20:39:03 cereal

---

Document: helpers.hpp(3) from cereal 1.3.2-r8 (Chainguard OS)
Source: https://github.com/USCiLab/cereal
