<!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.5"/> <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="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); $(window).load(resizeHeight); </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 style="padding-left: 0.5em;"> <div id="projectname">libstdc++ </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> </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('a00470.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="a03249.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="a01701.html">Utilities</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Inheritance diagram for std::pair< _T1, _T2 >:</div> <div class="dyncontent"> <div class="center"><iframe scrolling="no" frameborder="0" src="a03250.svg" width="155" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> </div> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <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 class="anchor" 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="a00470.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="a00470.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="a00470.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="a00470.html#aa6a6061b4e85a7436f647991330588f9">pair</a> (const <a class="el" href="a00470.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 class="anchor" id="a6007cb8dd58a63f00003b5aa66287e91"></a> constexpr </td><td class="memItemRight" valign="bottom"><b>pair</b> (const <a class="el" href="a00470.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 class="anchor" id="a84d597c2dd812012fa9bfeddcafaafdb"></a> constexpr </td><td class="memItemRight" valign="bottom"><b>pair</b> (<a class="el" href="a00470.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 class="anchor" 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 class="anchor" 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 class="anchor" 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 class="anchor" 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="a00470.html">pair</a>< _U1, _U2 > &&__p)</td></tr> <tr class="separator:aab4d271641115d347fe5a56d2d6e0d95"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac5d621f9b75c25e77cf7505916dca560"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac5d621f9b75c25e77cf7505916dca560"></a> template<typename... _Args1, typename... _Args2> </td></tr> <tr class="memitem:gac5d621f9b75c25e77cf7505916dca560"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><b>pair</b> (<a class="el" href="a00934.html">piecewise_construct_t</a>, <a class="el" href="a00994.html">tuple</a>< _Args1...>, <a class="el" href="a00994.html">tuple</a>< _Args2...>)</td></tr> <tr class="separator:gac5d621f9b75c25e77cf7505916dca560"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6261703338d7f1eb0e485c4f47fdc45f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6261703338d7f1eb0e485c4f47fdc45f"></a> void && </td><td class="memItemRight" valign="bottom"><b>noexcept</b> (<a class="el" href="a01662.html#aa36b65fec3dac007e5357c3fc03d0335">swap</a>(<a class="el" href="a00470.html#a91179413226db12e66346d3673b7835f">second</a>, __p.second)))</td></tr> <tr class="separator:a6261703338d7f1eb0e485c4f47fdc45f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af232609fbccfcc2c5e3e05be70d6879b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af232609fbccfcc2c5e3e05be70d6879b"></a> <a class="el" href="a00470.html">pair</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00470.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 class="anchor" id="ad26265d17aa210bc4bf5f4a61f8ce320"></a> <a class="el" href="a00470.html">pair</a> & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00470.html">pair</a> &&__p) noexcept(__and_< <a class="el" href="a00833.html">is_nothrow_move_assignable</a>< _T1 >, <a class="el" href="a00833.html">is_nothrow_move_assignable</a>< _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 class="anchor" 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="a00470.html">pair</a> & </td><td class="memTemplItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="a00470.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 class="anchor" 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="a00470.html">pair</a> & </td><td class="memTemplItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="a00470.html">pair</a>< _U1, _U2 > &&__p)</td></tr> <tr class="separator:afff12609847a576f872cf854a24df03d"><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="a00470.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="a00470.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>Definition at line <a class="el" href="a01561_source.html#l00096">96</a> of file <a class="el" href="a01561_source.html">stl_pair.h</a>.</p> </div><h2 class="groupheader">Member Typedef Documentation</h2> <a class="anchor" id="a6d205c1eab800cb27d82060d11d531a3"></a> <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="a00470.html">std::pair</a>< _T1, _T2 >::<a class="el" href="a00470.html#a6d205c1eab800cb27d82060d11d531a3">second_type</a></td> </tr> </table> </div><div class="memdoc"> <p><code>first_type</code> is the first bound type </p> <p>Definition at line <a class="el" href="a01561_source.html#l00099">99</a> of file <a class="el" href="a01561_source.html">stl_pair.h</a>.</p> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a79bb1a193a2b60cc58921de917a04ac5"></a> <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="a00470.html">std::pair</a>< _T1, _T2 >::<a class="el" href="a00470.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>Definition at line <a class="el" href="a01561_source.html#l00108">108</a> of file <a class="el" href="a01561_source.html">stl_pair.h</a>.</p> </div> </div> <a class="anchor" id="a7461dfa34c324721fbc9d786a29f6721"></a> <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="a00470.html">std::pair</a>< _T1, _T2 >::<a class="el" href="a00470.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>Definition at line <a class="el" href="a01561_source.html#l00112">112</a> of file <a class="el" href="a01561_source.html">stl_pair.h</a>.</p> </div> </div> <a class="anchor" id="aa6a6061b4e85a7436f647991330588f9"></a> <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="a00470.html">std::pair</a>< _T1, _T2 >::<a class="el" href="a00470.html">pair</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="a00470.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>Definition at line <a class="el" href="a01561_source.html#l00124">124</a> of file <a class="el" href="a01561_source.html">stl_pair.h</a>.</p> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="a198b03cffc037835dc1dc01c926ce251"></a> <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="a00470.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>Definition at line <a class="el" href="a01561_source.html#l00101">101</a> of file <a class="el" href="a01561_source.html">stl_pair.h</a>.</p> <p>Referenced by <a class="el" href="a01567_source.html#l00244">std::_Temporary_buffer< _ForwardIterator, _Tp >::_Temporary_buffer()</a>, <a class="el" href="a01565_source.html#l00460">std::set< _StateIdT >::insert()</a>, and <a class="el" href="a01561_source.html#l00214">std::operator==()</a>.</p> </div> </div> <a class="anchor" id="a91179413226db12e66346d3673b7835f"></a> <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="a00470.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>Definition at line <a class="el" href="a01561_source.html#l00102">102</a> of file <a class="el" href="a01561_source.html">stl_pair.h</a>.</p> <p>Referenced by <a class="el" href="a01567_source.html#l00244">std::_Temporary_buffer< _ForwardIterator, _Tp >::_Temporary_buffer()</a>, <a class="el" href="a01565_source.html#l00460">std::set< _StateIdT >::insert()</a>, and <a class="el" href="a01561_source.html#l00214">std::operator==()</a>.</p> </div> </div> <hr/>The documentation for this struct was generated from the following files:<ul> <li><a class="el" href="a01561_source.html">stl_pair.h</a></li> <li><a class="el" href="a01608_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="a01662.html">std</a></li><li class="navelem"><a class="el" href="a00470.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.5 </li> </ul> </div> </body> </html>