<!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::pair< _T1, _T2 > Struct 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('a06689.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="#pub-attribs">Public Attributes</a> | <a href="a06686.html">List of all members</a> </div> <div class="headertitle"> <div class="title">std::pair< _T1, _T2 > Struct Template Reference<div class="ingroups"><a class="el" href="a01431.html">Utilities</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:a323660e5704618c07b0d1d38f3f9ff02"><td class="memItemLeft" align="right" valign="top"><a id="a323660e5704618c07b0d1d38f3f9ff02"></a> typedef _T1 </td><td class="memItemRight" valign="bottom"><b>first_type</b></td></tr> <tr class="separator:a323660e5704618c07b0d1d38f3f9ff02"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6d205c1eab800cb27d82060d11d531a3"><td class="memItemLeft" align="right" valign="top">typedef _T2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a06689.html#a6d205c1eab800cb27d82060d11d531a3">second_type</a></td></tr> <tr class="separator:a6d205c1eab800cb27d82060d11d531a3"><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:a79bb1a193a2b60cc58921de917a04ac5"><td class="memItemLeft" align="right" valign="top">constexpr </td><td class="memItemRight" valign="bottom"><a class="el" href="a06689.html#a79bb1a193a2b60cc58921de917a04ac5">pair</a> ()</td></tr> <tr class="separator:a79bb1a193a2b60cc58921de917a04ac5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7461dfa34c324721fbc9d786a29f6721"><td class="memItemLeft" align="right" valign="top">constexpr </td><td class="memItemRight" valign="bottom"><a class="el" href="a06689.html#a7461dfa34c324721fbc9d786a29f6721">pair</a> (const _T1 &__a, const _T2 &__b)</td></tr> <tr class="separator:a7461dfa34c324721fbc9d786a29f6721"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa6a6061b4e85a7436f647991330588f9"><td class="memTemplParams" colspan="2">template<class _U1 , class _U2 , class = typename enable_if<__and_<is_convertible<const _U1&, _T1>, is_convertible<const _U2&, _T2>>::value>::type> </td></tr> <tr class="memitem:aa6a6061b4e85a7436f647991330588f9"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a06689.html#aa6a6061b4e85a7436f647991330588f9">pair</a> (const <a class="el" href="a06689.html">pair</a>< _U1, _U2 > &__p)</td></tr> <tr class="separator:aa6a6061b4e85a7436f647991330588f9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6007cb8dd58a63f00003b5aa66287e91"><td class="memItemLeft" align="right" valign="top"><a id="a6007cb8dd58a63f00003b5aa66287e91"></a> constexpr </td><td class="memItemRight" valign="bottom"><b>pair</b> (const <a class="el" href="a06689.html">pair</a> &)=default</td></tr> <tr class="separator:a6007cb8dd58a63f00003b5aa66287e91"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a84d597c2dd812012fa9bfeddcafaafdb"><td class="memItemLeft" align="right" valign="top"><a id="a84d597c2dd812012fa9bfeddcafaafdb"></a> constexpr </td><td class="memItemRight" valign="bottom"><b>pair</b> (<a class="el" href="a06689.html">pair</a> &&)=default</td></tr> <tr class="separator:a84d597c2dd812012fa9bfeddcafaafdb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab3d51f2fb17fcddce58e6adae0448557"><td class="memTemplParams" colspan="2"><a id="ab3d51f2fb17fcddce58e6adae0448557"></a> template<class _U1 , class = typename enable_if<is_convertible<_U1, _T1>::value>::type> </td></tr> <tr class="memitem:ab3d51f2fb17fcddce58e6adae0448557"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>pair</b> (_U1 &&__x, const _T2 &__y)</td></tr> <tr class="separator:ab3d51f2fb17fcddce58e6adae0448557"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac42569bef096ab870f5d045061bab2fb"><td class="memTemplParams" colspan="2"><a id="ac42569bef096ab870f5d045061bab2fb"></a> template<class _U2 , class = typename enable_if<is_convertible<_U2, _T2>::value>::type> </td></tr> <tr class="memitem:ac42569bef096ab870f5d045061bab2fb"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>pair</b> (const _T1 &__x, _U2 &&__y)</td></tr> <tr class="separator:ac42569bef096ab870f5d045061bab2fb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a05bd6d8ca2d2910333584c2b4cde9266"><td class="memTemplParams" colspan="2"><a id="a05bd6d8ca2d2910333584c2b4cde9266"></a> template<class _U1 , class _U2 , class = typename enable_if<__and_<is_convertible<_U1, _T1>, is_convertible<_U2, _T2>>::value>::type> </td></tr> <tr class="memitem:a05bd6d8ca2d2910333584c2b4cde9266"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>pair</b> (_U1 &&__x, _U2 &&__y)</td></tr> <tr class="separator:a05bd6d8ca2d2910333584c2b4cde9266"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aab4d271641115d347fe5a56d2d6e0d95"><td class="memTemplParams" colspan="2"><a id="aab4d271641115d347fe5a56d2d6e0d95"></a> template<class _U1 , class _U2 , class = typename enable_if<__and_<is_convertible<_U1, _T1>, is_convertible<_U2, _T2>>::value>::type> </td></tr> <tr class="memitem:aab4d271641115d347fe5a56d2d6e0d95"><td class="memTemplItemLeft" align="right" valign="top">constexpr </td><td class="memTemplItemRight" valign="bottom"><b>pair</b> (<a class="el" href="a06689.html">pair</a>< _U1, _U2 > &&__p)</td></tr> <tr class="separator:aab4d271641115d347fe5a56d2d6e0d95"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gade65ba1c1fd684cf294419ce44f400d6"><td class="memTemplParams" colspan="2"> template<typename... _Args1, typename... _Args2> </td></tr> <tr class="memitem:gade65ba1c1fd684cf294419ce44f400d6"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><b>pair</b> (<a class="el" href="a06685.html">piecewise_construct_t</a>, <a class="el" href="a03329.html">tuple</a>< _Args1... >, <a class="el" href="a03329.html">tuple</a>< _Args2... >)</td></tr> <tr class="separator:gade65ba1c1fd684cf294419ce44f400d6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af232609fbccfcc2c5e3e05be70d6879b"><td class="memItemLeft" align="right" valign="top"><a id="af232609fbccfcc2c5e3e05be70d6879b"></a> <a class="el" href="a06689.html">pair</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a06689.html">pair</a> &__p)</td></tr> <tr class="separator:af232609fbccfcc2c5e3e05be70d6879b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad26265d17aa210bc4bf5f4a61f8ce320"><td class="memItemLeft" align="right" valign="top"><a id="ad26265d17aa210bc4bf5f4a61f8ce320"></a> <a class="el" href="a06689.html">pair</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a06689.html">pair</a> &&__p) noexcept(__and_< is_nothrow_move_assignable< _T1 >, is_nothrow_move_assignable< _T2 >>::value)</td></tr> <tr class="separator:ad26265d17aa210bc4bf5f4a61f8ce320"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a55cf021efdae39c9192e3dcfd922cb9f"><td class="memTemplParams" colspan="2"><a id="a55cf021efdae39c9192e3dcfd922cb9f"></a> template<class _U1 , class _U2 > </td></tr> <tr class="memitem:a55cf021efdae39c9192e3dcfd922cb9f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a06689.html">pair</a> & </td><td class="memTemplItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a06689.html">pair</a>< _U1, _U2 > &__p)</td></tr> <tr class="separator:a55cf021efdae39c9192e3dcfd922cb9f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afff12609847a576f872cf854a24df03d"><td class="memTemplParams" colspan="2"><a id="afff12609847a576f872cf854a24df03d"></a> template<class _U1 , class _U2 > </td></tr> <tr class="memitem:afff12609847a576f872cf854a24df03d"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a06689.html">pair</a> & </td><td class="memTemplItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a06689.html">pair</a>< _U1, _U2 > &&__p)</td></tr> <tr class="separator:afff12609847a576f872cf854a24df03d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aca9939156d3457bfcf68f0871818414d"><td class="memItemLeft" align="right" valign="top"><a id="aca9939156d3457bfcf68f0871818414d"></a> void </td><td class="memItemRight" valign="bottom"><b>swap</b> (<a class="el" href="a06689.html">pair</a> &__p) noexcept(noexcept(swap(<a class="el" href="a06689.html#a198b03cffc037835dc1dc01c926ce251">first</a>, __p.first)) &&noexcept(swap(<a class="el" href="a06689.html#a91179413226db12e66346d3673b7835f">second</a>, __p.second)))</td></tr> <tr class="separator:aca9939156d3457bfcf68f0871818414d"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a> Public Attributes</h2></td></tr> <tr class="memitem:a198b03cffc037835dc1dc01c926ce251"><td class="memItemLeft" align="right" valign="top">_T1 </td><td class="memItemRight" valign="bottom"><a class="el" href="a06689.html#a198b03cffc037835dc1dc01c926ce251">first</a></td></tr> <tr class="separator:a198b03cffc037835dc1dc01c926ce251"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a91179413226db12e66346d3673b7835f"><td class="memItemLeft" align="right" valign="top">_T2 </td><td class="memItemRight" valign="bottom"><a class="el" href="a06689.html#a91179413226db12e66346d3673b7835f">second</a></td></tr> <tr class="separator:a91179413226db12e66346d3673b7835f"><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<class _T1, class _T2><br /> struct std::pair< _T1, _T2 ></h3> <p>Struct holding two objects of arbitrary type. </p> <dl class="tparams"><dt>Template Parameters</dt><dd> <table class="tparams"> <tr><td class="paramname">_T1</td><td>Type of first object. </td></tr> <tr><td class="paramname">_T2</td><td>Type of second object. </td></tr> </table> </dd> </dl> <p class="definition">Definition at line <a class="el" href="a00527_source.html#l00096">96</a> of file <a class="el" href="a00527_source.html">stl_pair.h</a>.</p> </div><h2 class="groupheader">Member Typedef Documentation</h2> <a id="a6d205c1eab800cb27d82060d11d531a3"></a> <h2 class="memtitle"><span class="permalink"><a href="#a6d205c1eab800cb27d82060d11d531a3">◆ </a></span>second_type</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class _T1, class _T2> </div> <table class="memname"> <tr> <td class="memname">typedef _T2 <a class="el" href="a06689.html">std::pair</a>< _T1, _T2 >::<a class="el" href="a06689.html#a6d205c1eab800cb27d82060d11d531a3">second_type</a></td> </tr> </table> </div><div class="memdoc"> <p><code>first_type</code> is the first bound type </p> <p class="definition">Definition at line <a class="el" href="a00527_source.html#l00099">99</a> of file <a class="el" href="a00527_source.html">stl_pair.h</a>.</p> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="a79bb1a193a2b60cc58921de917a04ac5"></a> <h2 class="memtitle"><span class="permalink"><a href="#a79bb1a193a2b60cc58921de917a04ac5">◆ </a></span>pair() <span class="overload">[1/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class _T1, class _T2> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">constexpr <a class="el" href="a06689.html">std::pair</a>< _T1, _T2 >::<a class="el" href="a06689.html">pair</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> </td> </tr> </table> </div><div class="memdoc"> <p><code>second</code> is a copy of the second object </p> <p>The default constructor creates <code>first</code> and <code>second</code> using their respective default constructors. </p> <p class="definition">Definition at line <a class="el" href="a00527_source.html#l00108">108</a> of file <a class="el" href="a00527_source.html">stl_pair.h</a>.</p> </div> </div> <a id="a7461dfa34c324721fbc9d786a29f6721"></a> <h2 class="memtitle"><span class="permalink"><a href="#a7461dfa34c324721fbc9d786a29f6721">◆ </a></span>pair() <span class="overload">[2/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class _T1, class _T2> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">constexpr <a class="el" href="a06689.html">std::pair</a>< _T1, _T2 >::<a class="el" href="a06689.html">pair</a> </td> <td>(</td> <td class="paramtype">const _T1 & </td> <td class="paramname"><em>__a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const _T2 & </td> <td class="paramname"><em>__b</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> </td> </tr> </table> </div><div class="memdoc"> <p>Two objects may be passed to a <code>pair</code> constructor to be copied. </p> <p class="definition">Definition at line <a class="el" href="a00527_source.html#l00112">112</a> of file <a class="el" href="a00527_source.html">stl_pair.h</a>.</p> </div> </div> <a id="aa6a6061b4e85a7436f647991330588f9"></a> <h2 class="memtitle"><span class="permalink"><a href="#aa6a6061b4e85a7436f647991330588f9">◆ </a></span>pair() <span class="overload">[3/3]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class _T1, class _T2> </div> <div class="memtemplate"> template<class _U1 , class _U2 , class = typename enable_if<__and_<is_convertible<const _U1&, _T1>, is_convertible<const _U2&, _T2>>::value>::type> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">constexpr <a class="el" href="a06689.html">std::pair</a>< _T1, _T2 >::<a class="el" href="a06689.html">pair</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="a06689.html">pair</a>< _U1, _U2 > & </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> </td> </tr> </table> </div><div class="memdoc"> <p>There is also a templated copy ctor for the <code>pair</code> class itself. </p> <p class="definition">Definition at line <a class="el" href="a00527_source.html#l00124">124</a> of file <a class="el" href="a00527_source.html">stl_pair.h</a>.</p> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a id="a198b03cffc037835dc1dc01c926ce251"></a> <h2 class="memtitle"><span class="permalink"><a href="#a198b03cffc037835dc1dc01c926ce251">◆ </a></span>first</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class _T1, class _T2> </div> <table class="memname"> <tr> <td class="memname">_T1 <a class="el" href="a06689.html">std::pair</a>< _T1, _T2 >::first</td> </tr> </table> </div><div class="memdoc"> <p><code>second_type</code> is the second bound type </p> <p class="definition">Definition at line <a class="el" href="a00527_source.html#l00101">101</a> of file <a class="el" href="a00527_source.html">stl_pair.h</a>.</p> <p class="reference">Referenced by <a class="el" href="a00815_source.html#l00171">__gnu_parallel::__qsb_conquer()</a>, <a class="el" href="a00539_source.html#l00483">std::set< _Key, _Compare, _Alloc >::insert()</a>, <a class="el" href="a00527_source.html#l00220">std::operator<()</a>, <a class="el" href="a00527_source.html#l00214">std::operator==()</a>, <a class="el" href="a00527_source.html#l00112">std::pair< _BiIter, _BiIter >::pair()</a>, and <a class="el" href="a00434_source.html#l00472">std::regex_replace()</a>.</p> </div> </div> <a id="a91179413226db12e66346d3673b7835f"></a> <h2 class="memtitle"><span class="permalink"><a href="#a91179413226db12e66346d3673b7835f">◆ </a></span>second</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<class _T1, class _T2> </div> <table class="memname"> <tr> <td class="memname">_T2 <a class="el" href="a06689.html">std::pair</a>< _T1, _T2 >::second</td> </tr> </table> </div><div class="memdoc"> <p><code>first</code> is a copy of the first object </p> <p class="definition">Definition at line <a class="el" href="a00527_source.html#l00102">102</a> of file <a class="el" href="a00527_source.html">stl_pair.h</a>.</p> <p class="reference">Referenced by <a class="el" href="a00815_source.html#l00171">__gnu_parallel::__qsb_conquer()</a>, <a class="el" href="a00539_source.html#l00483">std::set< _Key, _Compare, _Alloc >::insert()</a>, <a class="el" href="a00527_source.html#l00214">std::operator==()</a>, <a class="el" href="a00527_source.html#l00112">std::pair< _BiIter, _BiIter >::pair()</a>, and <a class="el" href="a00434_source.html#l00472">std::regex_replace()</a>.</p> </div> </div> <hr/>The documentation for this struct was generated from the following files:<ul> <li><a class="el" href="a00527_source.html">stl_pair.h</a></li> <li><a class="el" href="a00155_source.html">tuple</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="a06689.html">pair</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>