mirror of
https://github.com/USCiLab/cereal.git
synced 2025-07-21 02:12:01 +02:00
221 lines
16 KiB
HTML
221 lines
16 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<meta name="generator" content="Doxygen 1.8.17"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>cereal: cereal.hpp File Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td id="projectalign" style="padding-left: 0.5em;">
|
|
<div id="projectname">cereal
|
|
</div>
|
|
<div id="projectbrief">A C++11 library for serialization</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.17 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search');
|
|
$(document).ready(function() { init_search(); });
|
|
});
|
|
/* @license-end */</script>
|
|
<div id="main-nav"></div>
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<iframe src="javascript:void(0)" frameborder="0"
|
|
name="MSearchResults" id="MSearchResults">
|
|
</iframe>
|
|
</div>
|
|
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_d445d0c097210746bce3afd9a77bcad9.html">cereal</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Classes</a> |
|
|
<a href="#define-members">Macros</a> |
|
|
<a href="#enum-members">Enumerations</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">cereal.hpp File Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Main cereal functionality.
|
|
<a href="#details">More...</a></p>
|
|
<div class="textblock"><code>#include <type_traits></code><br />
|
|
<code>#include <string></code><br />
|
|
<code>#include <memory></code><br />
|
|
<code>#include <functional></code><br />
|
|
<code>#include <unordered_map></code><br />
|
|
<code>#include <unordered_set></code><br />
|
|
<code>#include <vector></code><br />
|
|
<code>#include <cstddef></code><br />
|
|
<code>#include <cstdint></code><br />
|
|
<code>#include "<a class="el" href="macros_8hpp_source.html">cereal/macros.hpp</a>"</code><br />
|
|
<code>#include "<a class="el" href="traits_8hpp_source.html">cereal/details/traits.hpp</a>"</code><br />
|
|
<code>#include "<a class="el" href="helpers_8hpp_source.html">cereal/details/helpers.hpp</a>"</code><br />
|
|
<code>#include "<a class="el" href="base__class_8hpp_source.html">cereal/types/base_class.hpp</a>"</code><br />
|
|
<code>#include "<a class="el" href="common_8hpp_source.html">cereal/types/common.hpp</a>"</code><br />
|
|
</div>
|
|
<p><a href="cereal_8hpp_source.html">Go to the source code of this file.</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
|
Classes</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1OutputArchive.html">cereal::OutputArchive< ArchiveType, Flags ></a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The base output archive class. <a href="classcereal_1_1OutputArchive.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1InputArchive.html">cereal::InputArchive< ArchiveType, Flags ></a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The base input archive class. <a href="classcereal_1_1InputArchive.html#details">More...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:ga78892c2ccfac7a5454639ca121e84439"><td class="memItemLeft" align="right" valign="top">
|
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Utility.html#ga78892c2ccfac7a5454639ca121e84439">CEREAL_NVP</a>(T)   ::cereal::make_nvp(#T, T)</td></tr>
|
|
<tr class="memdesc:ga78892c2ccfac7a5454639ca121e84439"><td class="mdescLeft"> </td><td class="mdescRight">Creates a name value pair for the variable T with the same name as the variable. <br /></td></tr>
|
|
<tr class="separator:ga78892c2ccfac7a5454639ca121e84439"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga80fe42796f7a4d6132ade9cb632cb1d1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Internal.html#ga80fe42796f7a4d6132ade9cb632cb1d1">CEREAL_REGISTER_ARCHIVE</a>(Archive)</td></tr>
|
|
<tr class="memdesc:ga80fe42796f7a4d6132ade9cb632cb1d1"><td class="mdescLeft"> </td><td class="mdescRight">Registers a specific Archive type with cereal. <a href="group__Internal.html#ga80fe42796f7a4d6132ade9cb632cb1d1">More...</a><br /></td></tr>
|
|
<tr class="separator:ga80fe42796f7a4d6132ade9cb632cb1d1"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ad9c7fcbb092e1279c2babf3c1257e4b6"><td class="memItemLeft" align="right" valign="top"><a id="ad9c7fcbb092e1279c2babf3c1257e4b6"></a>
|
|
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cereal_8hpp.html#ad9c7fcbb092e1279c2babf3c1257e4b6">CEREAL_UNUSED_FUNCTION</a>   static void unused() { (void)version; }</td></tr>
|
|
<tr class="memdesc:ad9c7fcbb092e1279c2babf3c1257e4b6"><td class="mdescLeft"> </td><td class="mdescRight">Helper macro to omit unused warning. <br /></td></tr>
|
|
<tr class="separator:ad9c7fcbb092e1279c2babf3c1257e4b6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gabea833652252591a51f75cb9ce31f44a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Utility.html#gabea833652252591a51f75cb9ce31f44a">CEREAL_CLASS_VERSION</a>(TYPE, VERSION_NUMBER)</td></tr>
|
|
<tr class="memdesc:gabea833652252591a51f75cb9ce31f44a"><td class="mdescLeft"> </td><td class="mdescRight">Defines a class version for some type. <a href="group__Utility.html#gabea833652252591a51f75cb9ce31f44a">More...</a><br /></td></tr>
|
|
<tr class="separator:gabea833652252591a51f75cb9ce31f44a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abf30af3781b2cd7bd163e408dc6cc04d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cereal_8hpp.html#abf30af3781b2cd7bd163e408dc6cc04d">PROCESS_IF</a>(name)</td></tr>
|
|
<tr class="memdesc:abf30af3781b2cd7bd163e408dc6cc04d"><td class="mdescLeft"> </td><td class="mdescRight">Helper macro that expands the requirements for activating an overload. <a href="cereal_8hpp.html#abf30af3781b2cd7bd163e408dc6cc04d">More...</a><br /></td></tr>
|
|
<tr class="separator:abf30af3781b2cd7bd163e408dc6cc04d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abf30af3781b2cd7bd163e408dc6cc04d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cereal_8hpp.html#abf30af3781b2cd7bd163e408dc6cc04d">PROCESS_IF</a>(name)</td></tr>
|
|
<tr class="memdesc:abf30af3781b2cd7bd163e408dc6cc04d"><td class="mdescLeft"> </td><td class="mdescRight">Helper macro that expands the requirements for activating an overload. <a href="cereal_8hpp.html#abf30af3781b2cd7bd163e408dc6cc04d">More...</a><br /></td></tr>
|
|
<tr class="separator:abf30af3781b2cd7bd163e408dc6cc04d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:ga95185aa9f39e4ac382bb6631beb68a67"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Internal.html#ga95185aa9f39e4ac382bb6631beb68a67">cereal::Flags</a> { <b>AllowEmptyClassElision</b> = 1
|
|
}</td></tr>
|
|
<tr class="memdesc:ga95185aa9f39e4ac382bb6631beb68a67"><td class="mdescLeft"> </td><td class="mdescRight">Special flags for archives. <a href="group__Internal.html#ga95185aa9f39e4ac382bb6631beb68a67">More...</a><br /></td></tr>
|
|
<tr class="separator:ga95185aa9f39e4ac382bb6631beb68a67"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:ga8093b5f7cfd618fae6350ef7b2c09453"><td class="memTemplParams" colspan="2">template<class Archive , class T > </td></tr>
|
|
<tr class="memitem:ga8093b5f7cfd618fae6350ef7b2c09453"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__Internal.html#ga8093b5f7cfd618fae6350ef7b2c09453">cereal::prologue</a> (Archive &, T const &)</td></tr>
|
|
<tr class="separator:ga8093b5f7cfd618fae6350ef7b2c09453"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga1153b7ce7ffbb86e2c81e076a252938e"><td class="memTemplParams" colspan="2">template<class Archive , class T > </td></tr>
|
|
<tr class="memitem:ga1153b7ce7ffbb86e2c81e076a252938e"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__Internal.html#ga1153b7ce7ffbb86e2c81e076a252938e">cereal::epilogue</a> (Archive &, T const &)</td></tr>
|
|
<tr class="separator:ga1153b7ce7ffbb86e2c81e076a252938e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Main cereal functionality. </p>
|
|
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
|
<a id="abf30af3781b2cd7bd163e408dc6cc04d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abf30af3781b2cd7bd163e408dc6cc04d">◆ </a></span>PROCESS_IF <span class="overload">[1/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define PROCESS_IF</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">name</td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> traits::EnableIf<traits::has_##name<T, ArchiveType>::value, \</div>
|
|
<div class="line"> !traits::has_invalid_output_versioning<T, ArchiveType>::value, \</div>
|
|
<div class="line"> (traits::is_output_serializable<T, ArchiveType>::value && \</div>
|
|
<div class="line"> (traits::is_specialized_##name<T, ArchiveType>::value || \</div>
|
|
<div class="line"> !traits::is_specialized<T, ArchiveType>::value))> = traits::sfinae</div>
|
|
</div><!-- fragment -->
|
|
<p>Helper macro that expands the requirements for activating an overload. </p>
|
|
<p>Requirements: Has the requested serialization function Does not have version and unversioned at the same time Is output serializable AND is specialized for this type of function OR has no specialization at all</p>
|
|
<p>Requirements: Has the requested serialization function Does not have version and unversioned at the same time Is input serializable AND is specialized for this type of function OR has no specialization at all </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abf30af3781b2cd7bd163e408dc6cc04d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abf30af3781b2cd7bd163e408dc6cc04d">◆ </a></span>PROCESS_IF <span class="overload">[2/2]</span></h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define PROCESS_IF</td>
|
|
<td>(</td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname">name</td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<b>Value:</b><div class="fragment"><div class="line"> traits::EnableIf<traits::has_##name<T, ArchiveType>::value, \</div>
|
|
<div class="line"> !traits::has_invalid_input_versioning<T, ArchiveType>::value, \</div>
|
|
<div class="line"> (traits::is_input_serializable<T, ArchiveType>::value && \</div>
|
|
<div class="line"> (traits::is_specialized_##name<T, ArchiveType>::value || \</div>
|
|
<div class="line"> !traits::is_specialized<T, ArchiveType>::value))> = traits::sfinae</div>
|
|
</div><!-- fragment -->
|
|
<p>Helper macro that expands the requirements for activating an overload. </p>
|
|
<p>Requirements: Has the requested serialization function Does not have version and unversioned at the same time Is output serializable AND is specialized for this type of function OR has no specialization at all</p>
|
|
<p>Requirements: Has the requested serialization function Does not have version and unversioned at the same time Is input serializable AND is specialized for this type of function OR has no specialization at all </p>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- HTML footer for doxygen 1.8.3.1-->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Sun Feb 27 2022 19:46:46 for cereal by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.17
|
|
</small></address>
|
|
<script>
|
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
|
ga('create', 'UA-42360142-1', 'uscilab.github.io');
|
|
ga('send', 'pageview');
|
|
</script>
|
|
</body>
|
|
</html>
|