mirror of
https://github.com/USCiLab/cereal.git
synced 2025-07-21 02:22:01 +02:00
144 lines
10 KiB
HTML
144 lines
10 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::detail::PolymorphicCaster Struct 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"><b>cereal</b></li><li class="navelem"><b>detail</b></li><li class="navelem"><a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html">PolymorphicCaster</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
<a href="structcereal_1_1detail_1_1PolymorphicCaster-members.html">List of all members</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">cereal::detail::PolymorphicCaster Struct Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Base type for polymorphic void casting.
|
|
<a href="structcereal_1_1detail_1_1PolymorphicCaster.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="polymorphic__impl_8hpp_source.html">/home/shane/workspace/cereal/include/cereal/details/polymorphic_impl.hpp</a>></code></p>
|
|
<div class="dynheader">
|
|
Inheritance diagram for cereal::detail::PolymorphicCaster:</div>
|
|
<div class="dyncontent">
|
|
<div class="center">
|
|
<img src="structcereal_1_1detail_1_1PolymorphicCaster.png" usemap="#cereal::detail::PolymorphicCaster_map" alt=""/>
|
|
<map id="cereal::detail::PolymorphicCaster_map" name="cereal::detail::PolymorphicCaster_map">
|
|
<area href="structcereal_1_1detail_1_1PolymorphicVirtualCaster.html" title="Strongly typed derivation of PolymorphicCaster." alt="cereal::detail::PolymorphicVirtualCaster< Base, Derived >" shape="rect" coords="0,56,340,80"/>
|
|
</map>
|
|
</div></div>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a8e3e433a846520d1b2d315eb475d0ebc"><td class="memItemLeft" align="right" valign="top"><a id="a8e3e433a846520d1b2d315eb475d0ebc"></a>
|
|
 </td><td class="memItemRight" valign="bottom"><b>PolymorphicCaster</b> (const <a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html">PolymorphicCaster</a> &)=default</td></tr>
|
|
<tr class="separator:a8e3e433a846520d1b2d315eb475d0ebc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a6ab9e81c3fc7efb5ef73f57b9932a64f"><td class="memItemLeft" align="right" valign="top"><a id="a6ab9e81c3fc7efb5ef73f57b9932a64f"></a>
|
|
<a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html">PolymorphicCaster</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html">PolymorphicCaster</a> &)=default</td></tr>
|
|
<tr class="separator:a6ab9e81c3fc7efb5ef73f57b9932a64f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a07ee3977cf1b8cac4b087258e8d3a517"><td class="memItemLeft" align="right" valign="top"><a id="a07ee3977cf1b8cac4b087258e8d3a517"></a>
|
|
 </td><td class="memItemRight" valign="bottom"><b>PolymorphicCaster</b> (<a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html">PolymorphicCaster</a> &&) <a class="el" href="macros_8hpp.html#a6c37b2307b83bbe2a3de58d78a2b8c0b">CEREAL_NOEXCEPT</a></td></tr>
|
|
<tr class="separator:a07ee3977cf1b8cac4b087258e8d3a517"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9783e7e27a7da70d7fa0fcc1f1883f50"><td class="memItemLeft" align="right" valign="top"><a id="a9783e7e27a7da70d7fa0fcc1f1883f50"></a>
|
|
<a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html">PolymorphicCaster</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html">PolymorphicCaster</a> &&) <a class="el" href="macros_8hpp.html#a6c37b2307b83bbe2a3de58d78a2b8c0b">CEREAL_NOEXCEPT</a></td></tr>
|
|
<tr class="separator:a9783e7e27a7da70d7fa0fcc1f1883f50"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7c3d1b95aae77fe87104dffb28073bcf"><td class="memItemLeft" align="right" valign="top"><a id="a7c3d1b95aae77fe87104dffb28073bcf"></a>
|
|
virtual const void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html#a7c3d1b95aae77fe87104dffb28073bcf">downcast</a> (void const *const ptr) const =0</td></tr>
|
|
<tr class="memdesc:a7c3d1b95aae77fe87104dffb28073bcf"><td class="mdescLeft"> </td><td class="mdescRight">Downcasts to the proper derived type. <br /></td></tr>
|
|
<tr class="separator:a7c3d1b95aae77fe87104dffb28073bcf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a7310f43706216cbae275fd1f2a579470"><td class="memItemLeft" align="right" valign="top"><a id="a7310f43706216cbae275fd1f2a579470"></a>
|
|
virtual void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html#a7310f43706216cbae275fd1f2a579470">upcast</a> (void *const ptr) const =0</td></tr>
|
|
<tr class="memdesc:a7310f43706216cbae275fd1f2a579470"><td class="mdescLeft"> </td><td class="mdescRight">Upcast to proper base type. <br /></td></tr>
|
|
<tr class="separator:a7310f43706216cbae275fd1f2a579470"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a52138150916461954d7c4236cd113617"><td class="memItemLeft" align="right" valign="top"><a id="a52138150916461954d7c4236cd113617"></a>
|
|
virtual std::shared_ptr< void > </td><td class="memItemRight" valign="bottom"><a class="el" href="structcereal_1_1detail_1_1PolymorphicCaster.html#a52138150916461954d7c4236cd113617">upcast</a> (std::shared_ptr< void > const &ptr) const =0</td></tr>
|
|
<tr class="memdesc:a52138150916461954d7c4236cd113617"><td class="mdescLeft"> </td><td class="mdescRight">Upcast to proper base type, shared_ptr version. <br /></td></tr>
|
|
<tr class="separator:a52138150916461954d7c4236cd113617"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>Base type for polymorphic void casting. </p>
|
|
<p>Contains functions for casting between registered base and derived types.</p>
|
|
<p>This is necessary so that cereal can properly cast between polymorphic types even though void pointers are used, which normally have no type information. Runtime type information is used instead to index a compile-time made mapping that can perform the proper cast. In the case of multiple levels of inheritance, cereal will attempt to find the shortest path by using registered relationships to perform the cast.</p>
|
|
<p>This class will be allocated as a <a class="el" href="classcereal_1_1detail_1_1StaticObject.html" title="A static, pre-execution object.">StaticObject</a> and only referenced by pointer, allowing a templated derived version of it to define strongly typed functions that cast between registered base and derived types. </p>
|
|
</div><hr/>The documentation for this struct was generated from the following file:<ul>
|
|
<li><a class="el" href="polymorphic__impl_8hpp_source.html">polymorphic_impl.hpp</a></li>
|
|
</ul>
|
|
</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>
|