<!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.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: std::experimental::fundamentals_v2::propagate_const< _Tp > Class Template 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="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</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">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('a10052.html','');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#friends">Friends</a> | <a href="a10049.html">List of all members</a> </div> <div class="headertitle"> <div class="title">std::experimental::fundamentals_v2::propagate_const< _Tp > Class Template Reference<div class="ingroups"><a class="el" href="a01514.html">Experimental</a> » <a class="el" href="a01516.html">Const-propagating wrapper</a></div></div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:a62c9bff677f5c0c465de47b16c5b9c6c"><td class="memItemLeft" align="right" valign="top"><a id="a62c9bff677f5c0c465de47b16c5b9c6c"></a> typedef <a class="el" href="a01476.html#ga05f704b8440a5839204308c83a07748f">remove_reference_t</a>< decltype(*std::declval< _Tp & >))> </td><td class="memItemRight" valign="bottom"><b>element_type</b></td></tr> <tr class="separator:a62c9bff677f5c0c465de47b16c5b9c6c"><td class="memSeparator" colspan="2"> </td></tr> </table><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:abe7a7fbebfbbd8e7af9cb2b0c3f36c54"><td class="memItemLeft" align="right" valign="top"><a id="abe7a7fbebfbbd8e7af9cb2b0c3f36c54"></a>  </td><td class="memItemRight" valign="bottom"><b>propagate_const</b> (const <a class="el" href="a10052.html">propagate_const</a> &__p)=delete</td></tr> <tr class="separator:abe7a7fbebfbbd8e7af9cb2b0c3f36c54"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ace3c715ce011679ae7c0ccd477eb589b"><td class="memItemLeft" align="right" valign="top"><a id="ace3c715ce011679ae7c0ccd477eb589b"></a> constexpr </td><td class="memItemRight" valign="bottom"><b>propagate_const</b> (<a class="el" href="a10052.html">propagate_const</a> &&__p)=default</td></tr> <tr class="separator:ace3c715ce011679ae7c0ccd477eb589b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a011779ec09cafd1861981e3386ab42ba"><td class="memTemplParams" colspan="2"><a id="a011779ec09cafd1861981e3386ab42ba"></a> template<typename _Up , typename enable_if< __and_< is_constructible< _Tp, _Up && >, is_convertible< _Up &&, _Tp >>::value, bool >::type = true> </td></tr> <tr class="memitem:a011779ec09cafd1861981e3386ab42ba"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>propagate_const</b> (<a class="el" href="a10052.html">propagate_const</a>< _Up > &&__pu)</td></tr> <tr class="separator:a011779ec09cafd1861981e3386ab42ba"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a011779ec09cafd1861981e3386ab42ba"><td class="memTemplParams" colspan="2"><a id="a011779ec09cafd1861981e3386ab42ba"></a> template<typename _Up , typename enable_if< __and_< is_constructible< _Tp, _Up && >, __not_< is_convertible< _Up &&, _Tp >>>::value, bool >::type = false> </td></tr> <tr class="memitem:a011779ec09cafd1861981e3386ab42ba"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>propagate_const</b> (<a class="el" href="a10052.html">propagate_const</a>< _Up > &&__pu)</td></tr> <tr class="separator:a011779ec09cafd1861981e3386ab42ba"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0ae88fc78dfd1a6de5aaa370133bfdfb"><td class="memTemplParams" colspan="2"><a id="a0ae88fc78dfd1a6de5aaa370133bfdfb"></a> template<typename _Up , typename enable_if< __and_< is_constructible< _Tp, _Up && >, is_convertible< _Up &&, _Tp >, __not_< __is_propagate_const< typename decay< _Up >::type >> >::value, bool >::type = true> </td></tr> <tr class="memitem:a0ae88fc78dfd1a6de5aaa370133bfdfb"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>propagate_const</b> (_Up &&__u)</td></tr> <tr class="separator:a0ae88fc78dfd1a6de5aaa370133bfdfb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0ae88fc78dfd1a6de5aaa370133bfdfb"><td class="memTemplParams" colspan="2"><a id="a0ae88fc78dfd1a6de5aaa370133bfdfb"></a> template<typename _Up , typename enable_if< __and_< is_constructible< _Tp, _Up && >, __not_< is_convertible< _Up &&, _Tp >>, __not_< __is_propagate_const< typename decay< _Up >::type >> >::value, bool >::type = false> </td></tr> <tr class="memitem:a0ae88fc78dfd1a6de5aaa370133bfdfb"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>propagate_const</b> (_Up &&__u)</td></tr> <tr class="separator:a0ae88fc78dfd1a6de5aaa370133bfdfb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a76df24d098d387d44372b46de15bf36a"><td class="memItemLeft" align="right" valign="top"><a id="a76df24d098d387d44372b46de15bf36a"></a> constexpr const element_type * </td><td class="memItemRight" valign="bottom"><b>get</b> () const</td></tr> <tr class="separator:a76df24d098d387d44372b46de15bf36a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6a89bd6db160364cfea76ab5a6988ebc"><td class="memItemLeft" align="right" valign="top"><a id="a6a89bd6db160364cfea76ab5a6988ebc"></a> constexpr element_type * </td><td class="memItemRight" valign="bottom"><b>get</b> ()</td></tr> <tr class="separator:a6a89bd6db160364cfea76ab5a6988ebc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad4e4a350c62cb278ec5d45555b1892e5"><td class="memItemLeft" align="right" valign="top"><a id="ad4e4a350c62cb278ec5d45555b1892e5"></a> constexpr </td><td class="memItemRight" valign="bottom"><b>operator bool</b> () const</td></tr> <tr class="separator:ad4e4a350c62cb278ec5d45555b1892e5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a53c80651a015fe61c03407443628a8f6"><td class="memTemplParams" colspan="2"><a id="a53c80651a015fe61c03407443628a8f6"></a> template<typename _Up = _Tp, typename enable_if< __or_< is_pointer< _Up >, is_convertible< _Up, const element_type * > >::value, bool >::type = true> </td></tr> <tr class="memitem:a53c80651a015fe61c03407443628a8f6"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>operator const element_type *</b> () const</td></tr> <tr class="separator:a53c80651a015fe61c03407443628a8f6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a70189391d49fe276864995e1bdcac431"><td class="memTemplParams" colspan="2"><a id="a70189391d49fe276864995e1bdcac431"></a> template<typename _Up = _Tp, typename enable_if< __or_< is_pointer< _Up >, is_convertible< _Up, const element_type * > >::value, bool >::type = true> </td></tr> <tr class="memitem:a70189391d49fe276864995e1bdcac431"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>operator element_type *</b> ()</td></tr> <tr class="separator:a70189391d49fe276864995e1bdcac431"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac1e2fe312dbf29cf678dbf1b182420fe"><td class="memItemLeft" align="right" valign="top"><a id="ac1e2fe312dbf29cf678dbf1b182420fe"></a> constexpr const element_type & </td><td class="memItemRight" valign="bottom"><b>operator*</b> () const</td></tr> <tr class="separator:ac1e2fe312dbf29cf678dbf1b182420fe"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac667425101456d2d0301edae75d92b80"><td class="memItemLeft" align="right" valign="top"><a id="ac667425101456d2d0301edae75d92b80"></a> constexpr element_type & </td><td class="memItemRight" valign="bottom"><b>operator*</b> ()</td></tr> <tr class="separator:ac667425101456d2d0301edae75d92b80"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac9635e86bf9bfc29d0cd0a074a3b55de"><td class="memItemLeft" align="right" valign="top"><a id="ac9635e86bf9bfc29d0cd0a074a3b55de"></a> constexpr const element_type * </td><td class="memItemRight" valign="bottom"><b>operator-></b> () const</td></tr> <tr class="separator:ac9635e86bf9bfc29d0cd0a074a3b55de"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a16fa3c025b5dd0dab93888addeb5635f"><td class="memItemLeft" align="right" valign="top"><a id="a16fa3c025b5dd0dab93888addeb5635f"></a> constexpr element_type * </td><td class="memItemRight" valign="bottom"><b>operator-></b> ()</td></tr> <tr class="separator:a16fa3c025b5dd0dab93888addeb5635f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae0aa27edf20f710968b2b6b38413464a"><td class="memItemLeft" align="right" valign="top"><a id="ae0aa27edf20f710968b2b6b38413464a"></a> <a class="el" href="a10052.html">propagate_const</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a10052.html">propagate_const</a> &__p)=delete</td></tr> <tr class="separator:ae0aa27edf20f710968b2b6b38413464a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a539eff3ee2effa674be31f0f6c2174ab"><td class="memItemLeft" align="right" valign="top"><a id="a539eff3ee2effa674be31f0f6c2174ab"></a> constexpr <a class="el" href="a10052.html">propagate_const</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a10052.html">propagate_const</a> &&__p)=default</td></tr> <tr class="separator:a539eff3ee2effa674be31f0f6c2174ab"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7d5b98885486bf6f5040f2281fc26390"><td class="memTemplParams" colspan="2"><a id="a7d5b98885486bf6f5040f2281fc26390"></a> template<typename _Up , typename = typename enable_if<is_convertible<_Up&&, _Tp>::value>::type> </td></tr> <tr class="memitem:a7d5b98885486bf6f5040f2281fc26390"><td class="memTemplItemLeft" align="right" valign="top">constexpr <a class="el" href="a10052.html">propagate_const</a> & </td><td class="memTemplItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a10052.html">propagate_const</a>< _Up > &&__pu)</td></tr> <tr class="separator:a7d5b98885486bf6f5040f2281fc26390"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1cdef731566cac93b25f1cde7c0a639f"><td class="memTemplParams" colspan="2"><a id="a1cdef731566cac93b25f1cde7c0a639f"></a> template<typename _Up , typename = typename enable_if<__and_<is_convertible<_Up&&, _Tp>, __not_<__is_propagate_const< typename decay<_Up>::type>> >::value>::type> </td></tr> <tr class="memitem:a1cdef731566cac93b25f1cde7c0a639f"><td class="memTemplItemLeft" align="right" valign="top">constexpr <a class="el" href="a10052.html">propagate_const</a> & </td><td class="memTemplItemRight" valign="bottom"><b>operator=</b> (_Up &&__u)</td></tr> <tr class="separator:a1cdef731566cac93b25f1cde7c0a639f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2aa06399df724c55adecf117ae128045"><td class="memItemLeft" align="right" valign="top"><a id="a2aa06399df724c55adecf117ae128045"></a> constexpr void </td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="a10052.html">propagate_const</a> &__pt) noexcept(__is_nothrow_swappable< _Tp >::value)</td></tr> <tr class="separator:a2aa06399df724c55adecf117ae128045"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a> Friends</h2></td></tr> <tr class="memitem:acd9a1815696756da860ce531c30f80f0"><td class="memTemplParams" colspan="2"><a id="acd9a1815696756da860ce531c30f80f0"></a> template<typename _Up > </td></tr> <tr class="memitem:acd9a1815696756da860ce531c30f80f0"><td class="memTemplItemLeft" align="right" valign="top">constexpr const _Up & </td><td class="memTemplItemRight" valign="bottom"><b>get_underlying</b> (const <a class="el" href="a10052.html">propagate_const</a>< _Up > &__pt) noexcept</td></tr> <tr class="separator:acd9a1815696756da860ce531c30f80f0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0100e2f0ddb7dd4e04a1e5ff6e6627bb"><td class="memTemplParams" colspan="2"><a id="a0100e2f0ddb7dd4e04a1e5ff6e6627bb"></a> template<typename _Up > </td></tr> <tr class="memitem:a0100e2f0ddb7dd4e04a1e5ff6e6627bb"><td class="memTemplItemLeft" align="right" valign="top">constexpr _Up & </td><td class="memTemplItemRight" valign="bottom"><b>get_underlying</b> (<a class="el" href="a10052.html">propagate_const</a>< _Up > &__pt) noexcept</td></tr> <tr class="separator:a0100e2f0ddb7dd4e04a1e5ff6e6627bb"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<typename _Tp><br /> class std::experimental::fundamentals_v2::propagate_const< _Tp ></h3> <p>Const-propagating wrapper. </p> <p class="definition">Definition at line <a class="el" href="a01010_source.html#l00063">63</a> of file <a class="el" href="a01010_source.html">propagate_const</a>.</p> </div><hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a01010_source.html">propagate_const</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="a01538.html">std</a></li><li class="navelem"><b>experimental</b></li><li class="navelem"><b>fundamentals_v2</b></li><li class="navelem"><a class="el" href="a10052.html">propagate_const</a></li> <li class="footer">Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li> </ul> </div> </body> </html>