<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: std::unique_ptr< _Tp, _Dp > 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"> $(document).ready(initResizable); </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.13 --> </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"> $(document).ready(function(){initNavTree('a06853.html','');}); </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="a06850.html">List of all members</a> </div> <div class="headertitle"> <div class="title">std::unique_ptr< _Tp, _Dp > Class Template Reference<div class="ingroups"><a class="el" href="a01431.html">Utilities</a> » <a class="el" href="a01424.html">Memory</a> » <a class="el" href="a01425.html">Pointer Abstractions</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:a11ee95d9e7697fe99d8d1304b8c040b6"><td class="memItemLeft" align="right" valign="top"><a id="a11ee95d9e7697fe99d8d1304b8c040b6"></a> typedef _Dp </td><td class="memItemRight" valign="bottom"><b>deleter_type</b></td></tr> <tr class="separator:a11ee95d9e7697fe99d8d1304b8c040b6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5f5b6ad24d107418bc5e40addf08ebd4"><td class="memItemLeft" align="right" valign="top"><a id="a5f5b6ad24d107418bc5e40addf08ebd4"></a> typedef _Tp </td><td class="memItemRight" valign="bottom"><b>element_type</b></td></tr> <tr class="separator:a5f5b6ad24d107418bc5e40addf08ebd4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa9288dd1a17e3877a4893239d3b95522"><td class="memItemLeft" align="right" valign="top"><a id="aa9288dd1a17e3877a4893239d3b95522"></a> typedef _Pointer::type </td><td class="memItemRight" valign="bottom"><b>pointer</b></td></tr> <tr class="separator:aa9288dd1a17e3877a4893239d3b95522"><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:aaa9b2e9b39f4bee8cce00ff57f8f00e1"><td class="memItemLeft" align="right" valign="top">constexpr </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#aaa9b2e9b39f4bee8cce00ff57f8f00e1">unique_ptr</a> () noexcept</td></tr> <tr class="separator:aaa9b2e9b39f4bee8cce00ff57f8f00e1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae14abab61f4d034fd83456116ec34e33"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#ae14abab61f4d034fd83456116ec34e33">unique_ptr</a> (pointer __p) noexcept</td></tr> <tr class="separator:ae14abab61f4d034fd83456116ec34e33"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad4a1488397ef665a967f4c1be5150bc3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#ad4a1488397ef665a967f4c1be5150bc3">unique_ptr</a> (pointer __p, typename conditional< <a class="el" href="a03841.html">is_reference</a>< deleter_type >::value, deleter_type, const deleter_type &>::type __d) noexcept</td></tr> <tr class="separator:ad4a1488397ef665a967f4c1be5150bc3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:accf546c02774a8a3fb3d878fe6259059"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#accf546c02774a8a3fb3d878fe6259059">unique_ptr</a> (pointer __p, typename remove_reference< deleter_type >::type &&__d) noexcept</td></tr> <tr class="separator:accf546c02774a8a3fb3d878fe6259059"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab2b1b117466c25e843f1e85ba5ebf4a0"><td class="memItemLeft" align="right" valign="top">constexpr </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#ab2b1b117466c25e843f1e85ba5ebf4a0">unique_ptr</a> (nullptr_t) noexcept</td></tr> <tr class="separator:ab2b1b117466c25e843f1e85ba5ebf4a0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3d0c5c99ab01ee8a1581c4533e60a56a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a3d0c5c99ab01ee8a1581c4533e60a56a">unique_ptr</a> (<a class="el" href="a06853.html">unique_ptr</a> &&__u) noexcept</td></tr> <tr class="separator:a3d0c5c99ab01ee8a1581c4533e60a56a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2fb272347a3713d3fc8f99efd0e84c74"><td class="memTemplParams" colspan="2">template<typename _Up , typename _Ep , typename = _Require< is_convertible<typename unique_ptr<_Up, _Ep>::pointer, pointer>, __not_<is_array<_Up>>, typename conditional<is_reference<_Dp>::value, is_same<_Ep, _Dp>, is_convertible<_Ep, _Dp>>::type>> </td></tr> <tr class="memitem:a2fb272347a3713d3fc8f99efd0e84c74"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a06853.html#a2fb272347a3713d3fc8f99efd0e84c74">unique_ptr</a> (<a class="el" href="a06853.html">unique_ptr</a>< _Up, _Ep > &&__u) noexcept</td></tr> <tr class="separator:a2fb272347a3713d3fc8f99efd0e84c74"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a95ee93d41835ecfbdf470b583d994d96"><td class="memTemplParams" colspan="2"><a id="a95ee93d41835ecfbdf470b583d994d96"></a> template<typename _Up , typename > </td></tr> <tr class="memitem:a95ee93d41835ecfbdf470b583d994d96"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><b>unique_ptr</b> (<a class="el" href="a07325.html">auto_ptr</a>< _Up > &&__u) noexcept</td></tr> <tr class="separator:a95ee93d41835ecfbdf470b583d994d96"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7d3350c3bffe99d66fc59d46d7a2c315"><td class="memItemLeft" align="right" valign="top"><a id="a7d3350c3bffe99d66fc59d46d7a2c315"></a>  </td><td class="memItemRight" valign="bottom"><b>unique_ptr</b> (const <a class="el" href="a06853.html">unique_ptr</a> &)=delete</td></tr> <tr class="separator:a7d3350c3bffe99d66fc59d46d7a2c315"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a934c3a2895f4ad9b413ee9132e949e81"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a934c3a2895f4ad9b413ee9132e949e81">~unique_ptr</a> () noexcept</td></tr> <tr class="separator:a934c3a2895f4ad9b413ee9132e949e81"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae29eb2b7c551c69c98995fc04f895781"><td class="memItemLeft" align="right" valign="top">pointer </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#ae29eb2b7c551c69c98995fc04f895781">get</a> () const noexcept</td></tr> <tr class="separator:ae29eb2b7c551c69c98995fc04f895781"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a62f850d198437890dffea7a4e029602d"><td class="memItemLeft" align="right" valign="top">deleter_type & </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a62f850d198437890dffea7a4e029602d">get_deleter</a> () noexcept</td></tr> <tr class="separator:a62f850d198437890dffea7a4e029602d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0ce41e4825268546e4f1ecf5f5259af0"><td class="memItemLeft" align="right" valign="top">const deleter_type & </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a0ce41e4825268546e4f1ecf5f5259af0">get_deleter</a> () const noexcept</td></tr> <tr class="separator:a0ce41e4825268546e4f1ecf5f5259af0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9f21c10165ad856c5b6b2889b815a9bf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a9f21c10165ad856c5b6b2889b815a9bf">operator bool</a> () const noexcept</td></tr> <tr class="separator:a9f21c10165ad856c5b6b2889b815a9bf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8e080072591682c8d1fb2bf468f51188"><td class="memItemLeft" align="right" valign="top">add_lvalue_reference< element_type >::type </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a8e080072591682c8d1fb2bf468f51188">operator*</a> () const</td></tr> <tr class="separator:a8e080072591682c8d1fb2bf468f51188"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad0486e6ff29eac8f1384948a4184e442"><td class="memItemLeft" align="right" valign="top">pointer </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#ad0486e6ff29eac8f1384948a4184e442">operator-></a> () const noexcept</td></tr> <tr class="separator:ad0486e6ff29eac8f1384948a4184e442"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0d690f8c5fd6b05f0ceb1dc04d79c821"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a06853.html">unique_ptr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a0d690f8c5fd6b05f0ceb1dc04d79c821">operator=</a> (<a class="el" href="a06853.html">unique_ptr</a> &&__u) noexcept</td></tr> <tr class="separator:a0d690f8c5fd6b05f0ceb1dc04d79c821"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a61a547b2d71159aa1467122578896181"><td class="memTemplParams" colspan="2">template<typename _Up , typename _Ep > </td></tr> <tr class="memitem:a61a547b2d71159aa1467122578896181"><td class="memTemplItemLeft" align="right" valign="top">enable_if< __and_< is_convertible< typename <a class="el" href="a06853.html">unique_ptr</a>< _Up, _Ep >::pointer, pointer >, __not_< <a class="el" href="a03649.html">is_array</a>< _Up > > >::value, <a class="el" href="a06853.html">unique_ptr</a> & >::type </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a06853.html#a61a547b2d71159aa1467122578896181">operator=</a> (<a class="el" href="a06853.html">unique_ptr</a>< _Up, _Ep > &&__u) noexcept</td></tr> <tr class="separator:a61a547b2d71159aa1467122578896181"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a53f23836b9dcfc3558e768d48969a903"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a06853.html">unique_ptr</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a53f23836b9dcfc3558e768d48969a903">operator=</a> (nullptr_t) noexcept</td></tr> <tr class="separator:a53f23836b9dcfc3558e768d48969a903"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9b1154de7238e6e6e45e87d3834ac754"><td class="memItemLeft" align="right" valign="top"><a id="a9b1154de7238e6e6e45e87d3834ac754"></a> <a class="el" href="a06853.html">unique_ptr</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a06853.html">unique_ptr</a> &)=delete</td></tr> <tr class="separator:a9b1154de7238e6e6e45e87d3834ac754"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af40585665f237aca4a3364726b3fdb1d"><td class="memItemLeft" align="right" valign="top">pointer </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#af40585665f237aca4a3364726b3fdb1d">release</a> () noexcept</td></tr> <tr class="separator:af40585665f237aca4a3364726b3fdb1d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a0922a8f5a7c082e9495e43a0fab365da"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a0922a8f5a7c082e9495e43a0fab365da">reset</a> (pointer __p=pointer()) noexcept</td></tr> <tr class="separator:a0922a8f5a7c082e9495e43a0fab365da"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a20128902c397043453a90db55f4ea276"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a06853.html#a20128902c397043453a90db55f4ea276">swap</a> (<a class="el" href="a06853.html">unique_ptr</a> &__u) noexcept</td></tr> <tr class="separator:a20128902c397043453a90db55f4ea276"><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, typename _Dp = default_delete<_Tp>><br /> class std::unique_ptr< _Tp, _Dp ></h3> <p>20.7.1.2 unique_ptr for single objects. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00129">129</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="aaa9b2e9b39f4bee8cce00ff57f8f00e1"></a> <h2 class="memtitle"><span class="permalink"><a href="#aaa9b2e9b39f4bee8cce00ff57f8f00e1">◆ </a></span>unique_ptr() <span class="overload">[1/7]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">constexpr <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::<a class="el" href="a06853.html">unique_ptr</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Default constructor, creates a unique_ptr that owns nothing. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00157">157</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="ae14abab61f4d034fd83456116ec34e33"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae14abab61f4d034fd83456116ec34e33">◆ </a></span>unique_ptr() <span class="overload">[2/7]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::<a class="el" href="a06853.html">unique_ptr</a> </td> <td>(</td> <td class="paramtype">pointer </td> <td class="paramname"><em>__p</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Takes ownership of a pointer.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__p</td><td>A pointer to an object of <code>element_type</code> </td></tr> </table> </dd> </dl> <p>The deleter will be value-initialized. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00169">169</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="ad4a1488397ef665a967f4c1be5150bc3"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad4a1488397ef665a967f4c1be5150bc3">◆ </a></span>unique_ptr() <span class="overload">[3/7]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::<a class="el" href="a06853.html">unique_ptr</a> </td> <td>(</td> <td class="paramtype">pointer </td> <td class="paramname"><em>__p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">typename conditional< <a class="el" href="a03841.html">is_reference</a>< deleter_type >::value, deleter_type, const deleter_type &>::type </td> <td class="paramname"><em>__d</em> </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 class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Takes ownership of a pointer.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__p</td><td>A pointer to an object of <code>element_type</code> </td></tr> <tr><td class="paramname">__d</td><td>A reference to a deleter.</td></tr> </table> </dd> </dl> <p>The deleter will be initialized with <code>__d</code> </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00184">184</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="accf546c02774a8a3fb3d878fe6259059"></a> <h2 class="memtitle"><span class="permalink"><a href="#accf546c02774a8a3fb3d878fe6259059">◆ </a></span>unique_ptr() <span class="overload">[4/7]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::<a class="el" href="a06853.html">unique_ptr</a> </td> <td>(</td> <td class="paramtype">pointer </td> <td class="paramname"><em>__p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">typename remove_reference< deleter_type >::type && </td> <td class="paramname"><em>__d</em> </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 class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Takes ownership of a pointer.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__p</td><td>A pointer to an object of <code>element_type</code> </td></tr> <tr><td class="paramname">__d</td><td>An rvalue reference to a deleter.</td></tr> </table> </dd> </dl> <p>The deleter will be initialized with <code>std::move(__d)</code> </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00196">196</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="ab2b1b117466c25e843f1e85ba5ebf4a0"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab2b1b117466c25e843f1e85ba5ebf4a0">◆ </a></span>unique_ptr() <span class="overload">[5/7]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">constexpr <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::<a class="el" href="a06853.html">unique_ptr</a> </td> <td>(</td> <td class="paramtype">nullptr_t </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Creates a unique_ptr that owns nothing. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00203">203</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a3d0c5c99ab01ee8a1581c4533e60a56a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3d0c5c99ab01ee8a1581c4533e60a56a">◆ </a></span>unique_ptr() <span class="overload">[6/7]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::<a class="el" href="a06853.html">unique_ptr</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="a06853.html">unique_ptr</a>< _Tp, _Dp > && </td> <td class="paramname"><em>__u</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Move constructor. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00208">208</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a2fb272347a3713d3fc8f99efd0e84c74"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2fb272347a3713d3fc8f99efd0e84c74">◆ </a></span>unique_ptr() <span class="overload">[7/7]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <div class="memtemplate"> template<typename _Up , typename _Ep , typename = _Require< is_convertible<typename unique_ptr<_Up, _Ep>::pointer, pointer>, __not_<is_array<_Up>>, typename conditional<is_reference<_Dp>::value, is_same<_Ep, _Dp>, is_convertible<_Ep, _Dp>>::type>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::<a class="el" href="a06853.html">unique_ptr</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="a06853.html">unique_ptr</a>< _Up, _Ep > && </td> <td class="paramname"><em>__u</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Converting constructor from another type. </p> <p>Requires that the pointer owned by <code>__u</code> is convertible to the type of pointer owned by this object, <code>__u</code> does not own an array, and <code>__u</code> has a compatible deleter type. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00223">223</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a934c3a2895f4ad9b413ee9132e949e81"></a> <h2 class="memtitle"><span class="permalink"><a href="#a934c3a2895f4ad9b413ee9132e949e81">◆ </a></span>~unique_ptr()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::~<a class="el" href="a06853.html">unique_ptr</a> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Destructor, invokes the deleter if the stored pointer is not null. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00235">235</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="ae29eb2b7c551c69c98995fc04f895781"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae29eb2b7c551c69c98995fc04f895781">◆ </a></span>get()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">pointer <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::get </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the stored pointer. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00307">307</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> <p class="reference">Referenced by <a class="el" href="a00572_source.html#l00594">std::unique_ptr< _Tp[], _Dp >::swap()</a>.</p> </div> </div> <a id="a62f850d198437890dffea7a4e029602d"></a> <h2 class="memtitle"><span class="permalink"><a href="#a62f850d198437890dffea7a4e029602d">◆ </a></span>get_deleter() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">deleter_type& <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::get_deleter </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return a reference to the stored deleter. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00312">312</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a0ce41e4825268546e4f1ecf5f5259af0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0ce41e4825268546e4f1ecf5f5259af0">◆ </a></span>get_deleter() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const deleter_type& <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::get_deleter </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return a reference to the stored deleter. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00317">317</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a9f21c10165ad856c5b6b2889b815a9bf"></a> <h2 class="memtitle"><span class="permalink"><a href="#a9f21c10165ad856c5b6b2889b815a9bf">◆ </a></span>operator bool()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::operator bool </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return <code>true</code> if the stored pointer is not null. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00321">321</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a8e080072591682c8d1fb2bf468f51188"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8e080072591682c8d1fb2bf468f51188">◆ </a></span>operator*()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">add_lvalue_reference<element_type>::type <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::operator* </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</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>Dereference the stored pointer. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00291">291</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="ad0486e6ff29eac8f1384948a4184e442"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad0486e6ff29eac8f1384948a4184e442">◆ </a></span>operator->()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">pointer <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::operator-> </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Return the stored pointer. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00299">299</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a0d690f8c5fd6b05f0ceb1dc04d79c821"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0d690f8c5fd6b05f0ceb1dc04d79c821">◆ </a></span>operator=() <span class="overload">[1/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">unique_ptr</a>& <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="a06853.html">unique_ptr</a>< _Tp, _Dp > && </td> <td class="paramname"><em>__u</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Move assignment operator. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__u</td><td>The object to transfer ownership from.</td></tr> </table> </dd> </dl> <p>Invokes the deleter first if this object owns a pointer. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00252">252</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a61a547b2d71159aa1467122578896181"></a> <h2 class="memtitle"><span class="permalink"><a href="#a61a547b2d71159aa1467122578896181">◆ </a></span>operator=() <span class="overload">[2/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <div class="memtemplate"> template<typename _Up , typename _Ep > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">enable_if< __and_< is_convertible<typename <a class="el" href="a06853.html">unique_ptr</a><_Up, _Ep>::pointer, pointer>, __not_<<a class="el" href="a03649.html">is_array</a><_Up> > >::value, <a class="el" href="a06853.html">unique_ptr</a>&>::type <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="a06853.html">unique_ptr</a>< _Up, _Ep > && </td> <td class="paramname"><em>__u</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Assignment from another type. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__u</td><td>The object to transfer ownership from, which owns a convertible pointer to a non-array object.</td></tr> </table> </dd> </dl> <p>Invokes the deleter first if this object owns a pointer. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00272">272</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a53f23836b9dcfc3558e768d48969a903"></a> <h2 class="memtitle"><span class="permalink"><a href="#a53f23836b9dcfc3558e768d48969a903">◆ </a></span>operator=() <span class="overload">[3/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a06853.html">unique_ptr</a>& <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::operator= </td> <td>(</td> <td class="paramtype">nullptr_t </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Reset the unique_ptr to empty, invoking the deleter if necessary. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00281">281</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="af40585665f237aca4a3364726b3fdb1d"></a> <h2 class="memtitle"><span class="permalink"><a href="#af40585665f237aca4a3364726b3fdb1d">◆ </a></span>release()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">pointer <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::release </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Release ownership of any stored pointer. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00328">328</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a0922a8f5a7c082e9495e43a0fab365da"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0922a8f5a7c082e9495e43a0fab365da">◆ </a></span>reset()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::reset </td> <td>(</td> <td class="paramtype">pointer </td> <td class="paramname"><em>__p</em> = <code>pointer()</code></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Replace the stored pointer. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__p</td><td>The new pointer to store.</td></tr> </table> </dd> </dl> <p>The deleter will be invoked if a pointer is already owned. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00342">342</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> </div> </div> <a id="a20128902c397043453a90db55f4ea276"></a> <h2 class="memtitle"><span class="permalink"><a href="#a20128902c397043453a90db55f4ea276">◆ </a></span>swap()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Tp, typename _Dp = default_delete<_Tp>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="a06853.html">std::unique_ptr</a>< _Tp, _Dp >::swap </td> <td>(</td> <td class="paramtype"><a class="el" href="a06853.html">unique_ptr</a>< _Tp, _Dp > & </td> <td class="paramname"><em>__u</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Exchange the pointer and deleter with another object. </p> <p class="definition">Definition at line <a class="el" href="a00572_source.html#l00352">352</a> of file <a class="el" href="a00572_source.html">unique_ptr.h</a>.</p> <p class="reference">Referenced by <a class="el" href="a00572_source.html#l00594">std::unique_ptr< _Tp[], _Dp >::swap()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="a00572_source.html">unique_ptr.h</a></li> <li><a class="el" href="a00671_source.html">auto_ptr.h</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="a01487.html">std</a></li><li class="navelem"><a class="el" href="a06853.html">unique_ptr</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.13 </li> </ul> </div> </body> </html>