cereal/assets/doxygen/memory_8hpp.html
2022-02-27 19:48:38 -08:00

297 lines
23 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: memory.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&amp;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&amp;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><li class="navelem"><a class="el" href="dir_056182efa28390c8a7ef83cb1836ec86.html">types</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">memory.hpp File Reference<div class="ingroups"><a class="el" href="group__TypeSupport.html">Support for Serializing Various Types</a> &raquo; <a class="el" href="group__STLSupport.html">Standard Library Support</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Support for types found in &lt;memory&gt;
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="cereal_8hpp_source.html">cereal/cereal.hpp</a>&quot;</code><br />
<code>#include &lt;memory&gt;</code><br />
<code>#include &lt;cstring&gt;</code><br />
<code>#include &quot;<a class="el" href="polymorphic_8hpp_source.html">cereal/types/polymorphic.hpp</a>&quot;</code><br />
</div>
<p><a href="memory_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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcereal_1_1memory__detail_1_1PtrWrapper.html">cereal::memory_detail::PtrWrapper&lt; T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A wrapper class to notify cereal that it is ok to serialize the contained pointer. <a href="structcereal_1_1memory__detail_1_1PtrWrapper.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcereal_1_1memory__detail_1_1LoadAndConstructLoadWrapper.html">cereal::memory_detail::LoadAndConstructLoadWrapper&lt; Archive, T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A struct that acts as a wrapper around calling load_andor_construct. <a href="structcereal_1_1memory__detail_1_1LoadAndConstructLoadWrapper.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcereal_1_1memory__detail_1_1EnableSharedStateHelper.html">cereal::memory_detail::EnableSharedStateHelper&lt; T &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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:a3c95179fb53d0fd7da834350a7a6e188"><td class="memTemplParams" colspan="2"><a id="a3c95179fb53d0fd7da834350a7a6e188"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a3c95179fb53d0fd7da834350a7a6e188"><td class="memTemplItemLeft" align="right" valign="top">PtrWrapper&lt; T &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#a3c95179fb53d0fd7da834350a7a6e188">cereal::memory_detail::make_ptr_wrapper</a> (T &amp;&amp;t)</td></tr>
<tr class="memdesc:a3c95179fb53d0fd7da834350a7a6e188"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make a <a class="el" href="structcereal_1_1memory__detail_1_1PtrWrapper.html" title="A wrapper class to notify cereal that it is ok to serialize the contained pointer.">PtrWrapper</a>. <br /></td></tr>
<tr class="separator:a3c95179fb53d0fd7da834350a7a6e188"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4edca86bd2fbac9423b29d0d787704bf"><td class="memTemplParams" colspan="2">template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:a4edca86bd2fbac9423b29d0d787704bf"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#a4edca86bd2fbac9423b29d0d787704bf">cereal::memory_detail::loadAndConstructSharedPtr</a> (Archive &amp;ar, T *ptr, std::true_type)</td></tr>
<tr class="separator:a4edca86bd2fbac9423b29d0d787704bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ababa11f183f902ff171f6c240bb70725"><td class="memTemplParams" colspan="2">template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:ababa11f183f902ff171f6c240bb70725"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#ababa11f183f902ff171f6c240bb70725">cereal::memory_detail::loadAndConstructSharedPtr</a> (Archive &amp;ar, T *ptr, std::false_type)</td></tr>
<tr class="separator:ababa11f183f902ff171f6c240bb70725"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae32e5d8031bde714f82138ab097ce135"><td class="memTemplParams" colspan="2"><a id="ae32e5d8031bde714f82138ab097ce135"></a>
template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:ae32e5d8031bde714f82138ab097ce135"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt;!std::is_polymorphic&lt; T &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#ae32e5d8031bde714f82138ab097ce135">cereal::CEREAL_SAVE_FUNCTION_NAME</a> (Archive &amp;ar, std::shared_ptr&lt; T &gt; const &amp;ptr)</td></tr>
<tr class="memdesc:ae32e5d8031bde714f82138ab097ce135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saving std::shared_ptr for non polymorphic types. <br /></td></tr>
<tr class="separator:ae32e5d8031bde714f82138ab097ce135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a917df6d9415473be28a8a0791d293a35"><td class="memTemplParams" colspan="2"><a id="a917df6d9415473be28a8a0791d293a35"></a>
template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:a917df6d9415473be28a8a0791d293a35"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt;!std::is_polymorphic&lt; T &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#a917df6d9415473be28a8a0791d293a35">cereal::CEREAL_LOAD_FUNCTION_NAME</a> (Archive &amp;ar, std::shared_ptr&lt; T &gt; &amp;ptr)</td></tr>
<tr class="memdesc:a917df6d9415473be28a8a0791d293a35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loading std::shared_ptr, case when no user load and construct for non polymorphic types. <br /></td></tr>
<tr class="separator:a917df6d9415473be28a8a0791d293a35"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa01e0b5b328b5a0db1fd64f75ad4cb9d"><td class="memTemplParams" colspan="2"><a id="aa01e0b5b328b5a0db1fd64f75ad4cb9d"></a>
template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:aa01e0b5b328b5a0db1fd64f75ad4cb9d"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt;!std::is_polymorphic&lt; T &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#aa01e0b5b328b5a0db1fd64f75ad4cb9d">cereal::CEREAL_SAVE_FUNCTION_NAME</a> (Archive &amp;ar, std::weak_ptr&lt; T &gt; const &amp;ptr)</td></tr>
<tr class="memdesc:aa01e0b5b328b5a0db1fd64f75ad4cb9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saving std::weak_ptr for non polymorphic types. <br /></td></tr>
<tr class="separator:aa01e0b5b328b5a0db1fd64f75ad4cb9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a621b3b41cd8058c9bde03b753aa86a"><td class="memTemplParams" colspan="2"><a id="a4a621b3b41cd8058c9bde03b753aa86a"></a>
template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:a4a621b3b41cd8058c9bde03b753aa86a"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt;!std::is_polymorphic&lt; T &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#a4a621b3b41cd8058c9bde03b753aa86a">cereal::CEREAL_LOAD_FUNCTION_NAME</a> (Archive &amp;ar, std::weak_ptr&lt; T &gt; &amp;ptr)</td></tr>
<tr class="memdesc:a4a621b3b41cd8058c9bde03b753aa86a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loading std::weak_ptr for non polymorphic types. <br /></td></tr>
<tr class="separator:a4a621b3b41cd8058c9bde03b753aa86a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf5365f19aa89df7a849d13592a41ea8"><td class="memTemplParams" colspan="2"><a id="aaf5365f19aa89df7a849d13592a41ea8"></a>
template&lt;class Archive , class T , class D &gt; </td></tr>
<tr class="memitem:aaf5365f19aa89df7a849d13592a41ea8"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt;!std::is_polymorphic&lt; T &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#aaf5365f19aa89df7a849d13592a41ea8">cereal::CEREAL_SAVE_FUNCTION_NAME</a> (Archive &amp;ar, std::unique_ptr&lt; T, D &gt; const &amp;ptr)</td></tr>
<tr class="memdesc:aaf5365f19aa89df7a849d13592a41ea8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saving std::unique_ptr for non polymorphic types. <br /></td></tr>
<tr class="separator:aaf5365f19aa89df7a849d13592a41ea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb1ca7735ec31c2b5e9d13be281321de"><td class="memTemplParams" colspan="2"><a id="acb1ca7735ec31c2b5e9d13be281321de"></a>
template&lt;class Archive , class T , class D &gt; </td></tr>
<tr class="memitem:acb1ca7735ec31c2b5e9d13be281321de"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt;!std::is_polymorphic&lt; T &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#acb1ca7735ec31c2b5e9d13be281321de">cereal::CEREAL_LOAD_FUNCTION_NAME</a> (Archive &amp;ar, std::unique_ptr&lt; T, D &gt; &amp;ptr)</td></tr>
<tr class="memdesc:acb1ca7735ec31c2b5e9d13be281321de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loading std::unique_ptr, case when user provides load_and_construct for non polymorphic types. <br /></td></tr>
<tr class="separator:acb1ca7735ec31c2b5e9d13be281321de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2dd1ac3ad73ad7203acdc21d7ea995a"><td class="memTemplParams" colspan="2"><a id="ac2dd1ac3ad73ad7203acdc21d7ea995a"></a>
template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:ac2dd1ac3ad73ad7203acdc21d7ea995a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#ac2dd1ac3ad73ad7203acdc21d7ea995a">cereal::CEREAL_SAVE_FUNCTION_NAME</a> (Archive &amp;ar, memory_detail::PtrWrapper&lt; std::shared_ptr&lt; T &gt; const &amp; &gt; const &amp;wrapper)</td></tr>
<tr class="memdesc:ac2dd1ac3ad73ad7203acdc21d7ea995a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saving std::shared_ptr (wrapper implementation) <br /></td></tr>
<tr class="separator:ac2dd1ac3ad73ad7203acdc21d7ea995a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0396907ef9745cad405f1ff62215e28c"><td class="memTemplParams" colspan="2"><a id="a0396907ef9745cad405f1ff62215e28c"></a>
template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:a0396907ef9745cad405f1ff62215e28c"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt; traits::has_load_and_construct&lt; T, Archive &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#a0396907ef9745cad405f1ff62215e28c">cereal::CEREAL_LOAD_FUNCTION_NAME</a> (Archive &amp;ar, memory_detail::PtrWrapper&lt; std::shared_ptr&lt; T &gt; &amp; &gt; &amp;wrapper)</td></tr>
<tr class="memdesc:a0396907ef9745cad405f1ff62215e28c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loading std::shared_ptr, case when user load and construct (wrapper implementation) <br /></td></tr>
<tr class="separator:a0396907ef9745cad405f1ff62215e28c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5809a4b7750b5a0c26c2818f0270f01"><td class="memTemplParams" colspan="2"><a id="aa5809a4b7750b5a0c26c2818f0270f01"></a>
template&lt;class Archive , class T &gt; </td></tr>
<tr class="memitem:aa5809a4b7750b5a0c26c2818f0270f01"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt;!traits::has_load_and_construct&lt; T, Archive &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#aa5809a4b7750b5a0c26c2818f0270f01">cereal::CEREAL_LOAD_FUNCTION_NAME</a> (Archive &amp;ar, memory_detail::PtrWrapper&lt; std::shared_ptr&lt; T &gt; &amp; &gt; &amp;wrapper)</td></tr>
<tr class="memdesc:aa5809a4b7750b5a0c26c2818f0270f01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loading std::shared_ptr, case when no user load and construct (wrapper implementation) <br /></td></tr>
<tr class="separator:aa5809a4b7750b5a0c26c2818f0270f01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a5576cf5fa2dc553adca652003d232d"><td class="memTemplParams" colspan="2"><a id="a7a5576cf5fa2dc553adca652003d232d"></a>
template&lt;class Archive , class T , class D &gt; </td></tr>
<tr class="memitem:a7a5576cf5fa2dc553adca652003d232d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#a7a5576cf5fa2dc553adca652003d232d">cereal::CEREAL_SAVE_FUNCTION_NAME</a> (Archive &amp;ar, memory_detail::PtrWrapper&lt; std::unique_ptr&lt; T, D &gt; const &amp; &gt; const &amp;wrapper)</td></tr>
<tr class="memdesc:a7a5576cf5fa2dc553adca652003d232d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saving std::unique_ptr (wrapper implementation) <br /></td></tr>
<tr class="separator:a7a5576cf5fa2dc553adca652003d232d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0a7f7ebd3faec04dd809f5b203a6adb"><td class="memTemplParams" colspan="2"><a id="ae0a7f7ebd3faec04dd809f5b203a6adb"></a>
template&lt;class Archive , class T , class D &gt; </td></tr>
<tr class="memitem:ae0a7f7ebd3faec04dd809f5b203a6adb"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt; traits::has_load_and_construct&lt; T, Archive &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#ae0a7f7ebd3faec04dd809f5b203a6adb">cereal::CEREAL_LOAD_FUNCTION_NAME</a> (Archive &amp;ar, memory_detail::PtrWrapper&lt; std::unique_ptr&lt; T, D &gt; &amp; &gt; &amp;wrapper)</td></tr>
<tr class="memdesc:ae0a7f7ebd3faec04dd809f5b203a6adb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loading std::unique_ptr, case when user provides load_and_construct (wrapper implementation) <br /></td></tr>
<tr class="separator:ae0a7f7ebd3faec04dd809f5b203a6adb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fd284d9609d7b9c09d8779439e7f0c1"><td class="memTemplParams" colspan="2"><a id="a9fd284d9609d7b9c09d8779439e7f0c1"></a>
template&lt;class Archive , class T , class D &gt; </td></tr>
<tr class="memitem:a9fd284d9609d7b9c09d8779439e7f0c1"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if&lt;!traits::has_load_and_construct&lt; T, Archive &gt;::value, void &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="memory_8hpp.html#a9fd284d9609d7b9c09d8779439e7f0c1">cereal::CEREAL_LOAD_FUNCTION_NAME</a> (Archive &amp;ar, memory_detail::PtrWrapper&lt; std::unique_ptr&lt; T, D &gt; &amp; &gt; &amp;wrapper)</td></tr>
<tr class="memdesc:a9fd284d9609d7b9c09d8779439e7f0c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loading std::unique_ptr, case when no load_and_construct (wrapper implementation) <br /></td></tr>
<tr class="separator:a9fd284d9609d7b9c09d8779439e7f0c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Support for types found in &lt;memory&gt; </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="ababa11f183f902ff171f6c240bb70725"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ababa11f183f902ff171f6c240bb70725">&#9670;&nbsp;</a></span>loadAndConstructSharedPtr() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Archive , class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void cereal::memory_detail::loadAndConstructSharedPtr </td>
<td>(</td>
<td class="paramtype">Archive &amp;&#160;</td>
<td class="paramname"><em>ar</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *&#160;</td>
<td class="paramname"><em>ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::false_type&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs loading and construction for a shared pointer that is NOT derived from std::enable_shared_from_this</p>
<p>This is the typical case, where we simply pass the load wrapper to the archive.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ar</td><td>The archive </td></tr>
<tr><td class="paramname">ptr</td><td>Raw pointer held by the shared_ptr </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a4edca86bd2fbac9423b29d0d787704bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4edca86bd2fbac9423b29d0d787704bf">&#9670;&nbsp;</a></span>loadAndConstructSharedPtr() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Archive , class T &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void cereal::memory_detail::loadAndConstructSharedPtr </td>
<td>(</td>
<td class="paramtype">Archive &amp;&#160;</td>
<td class="paramname"><em>ar</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T *&#160;</td>
<td class="paramname"><em>ptr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::true_type&#160;</td>
<td class="paramname">&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Performs loading and construction for a shared pointer that is derived from std::enable_shared_from_this</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ar</td><td>The archive </td></tr>
<tr><td class="paramname">ptr</td><td>Raw pointer held by the shared_ptr </td></tr>
</table>
</dd>
</dl>
</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 &#160;<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>