<!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"/> <title>libstdc++: Futures</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript"> $(document).ready(initResizable); </script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="top"> <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> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('a01168.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Futures</div> </div> <div class="ingroups"><a class="el" href="a01163.html">Concurrency</a></div></div> <div class="contents"> <div class="dynheader"> Collaboration diagram for Futures:</div> <div class="dyncontent"> <center><table><tr><td><img src="a01168.png" border="0" alt="" usemap="#a01168"/> <map name="a01168" id="a01168"> <area shape="rect" id="node1" href="a01164.html" title="Exceptions" alt="" coords="349,8,432,37"/><area shape="rect" id="node3" href="a01163.html" title="Concurrency" alt="" coords="7,8,97,37"/></map> </td></tr></table></center> </div> <h2><a name="nested-classes"></a> Classes</h2> <ul> <li>class <a class="el" href="a00001.html">std::__basic_future< _Res ></a> <dl class="el"><dd class="mdescRight">Common implementation for future and <a class="el" href="a00696.html" title="Primary template for shared_future.">shared_future</a>. <a href="a00001.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00290.html">std::__future_base</a> <dl class="el"><dd class="mdescRight">Base class and enclosing scope. <a href="a00290.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00292.html">std::__future_base::_Result< _Res & ></a> <dl class="el"><dd class="mdescRight">Partial specialization for reference types. <a href="a00292.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00293.html">std::__future_base::_Result< void ></a> <dl class="el"><dd class="mdescRight">Explicit specialization for void. <a href="a00293.html#details">More...</a><br/></dl><li>class <a class="el" href="a00479.html">std::future< _Res ></a> <dl class="el"><dd class="mdescRight">Primary template for future. <a href="a00479.html#details">More...</a><br/></dl><li>class <a class="el" href="a00480.html">std::future< _Res & ></a> <dl class="el"><dd class="mdescRight">Partial specialization for future<R&> <a href="a00480.html#details">More...</a><br/></dl><li>class <a class="el" href="a00481.html">std::future< void ></a> <dl class="el"><dd class="mdescRight">Explicit specialization for <a class="el" href="a00481.html" title="Explicit specialization for future<void>">future<void></a> <a href="a00481.html#details">More...</a><br/></dl><li>class <a class="el" href="a00482.html">std::future_error</a> <dl class="el"><dd class="mdescRight">Exception type thrown by futures. <a href="a00482.html#details">More...</a><br/></dl><li>struct <a class="el" href="a00544.html">std::is_error_code_enum< future_errc ></a> <dl class="el"><dd class="mdescRight">Specialization. <a href="a00544.html#details">More...</a><br/></dl><li>class <a class="el" href="a00651.html">std::packaged_task< _Res(_ArgTypes...)></a> <dl class="el"><dd class="mdescRight">packaged_task <a href="a00651.html#details">More...</a><br/></dl><li>class <a class="el" href="a00663.html">std::promise< _Res ></a> <dl class="el"><dd class="mdescRight">Primary template for promise. <a href="a00663.html#details">More...</a><br/></dl><li>class <a class="el" href="a00664.html">std::promise< _Res & ></a> <dl class="el"><dd class="mdescRight">Partial specialization for promise<R&> <a href="a00664.html#details">More...</a><br/></dl><li>class <a class="el" href="a00665.html">std::promise< void ></a> <dl class="el"><dd class="mdescRight">Explicit specialization for <a class="el" href="a00665.html" title="Explicit specialization for promise<void>">promise<void></a> <a href="a00665.html#details">More...</a><br/></dl><li>class <a class="el" href="a00696.html">std::shared_future< _Res ></a> <dl class="el"><dd class="mdescRight">Primary template for <a class="el" href="a00696.html" title="Primary template for shared_future.">shared_future</a>. <a href="a00696.html#details">More...</a><br/></dl><li>class <a class="el" href="a00697.html">std::shared_future< _Res & ></a> <dl class="el"><dd class="mdescRight">Partial specialization for shared_future<R&> <a href="a00697.html#details">More...</a><br/></dl><li>class <a class="el" href="a00698.html">std::shared_future< void ></a> <dl class="el"><dd class="mdescRight">Explicit specialization for <a class="el" href="a00698.html" title="Explicit specialization for shared_future<void>">shared_future<void></a> <a href="a00698.html#details">More...</a><br/></dl></ul> <h2><a name="enum-members"></a> Enumerations</h2> <ul> <li>enum <a class="el" href="a01168.html#ga61938f7ac25df97b5362109e61bb46a6">std::future_errc</a> { <b>broken_promise</b>, <b>future_already_retrieved</b>, <b>promise_already_satisfied</b>, <b>no_state</b> } <li>enum <a class="el" href="a01168.html#ga528eb8f3b350394c0406d4d58ab7dbf4">std::future_status</a> { <b>ready</b>, <b>timeout</b>, <b>deferred</b> } <li>enum <a class="el" href="a01168.html#ga6f4ad125d364f01560e2ed20a3c8bb5b">std::launch</a> { <b>any</b>, <b>async</b>, <b>sync</b> } </ul> <h2><a name="func-members"></a> Functions</h2> <ul> <li><a class="anchor" id="ga16f6719a677d1abd14b166e136fb1541"></a><!-- doxytag: member="futures::__basic_future" ref="ga16f6719a677d1abd14b166e136fb1541" args="(const shared_future< _Res > &)" --> <b>std::__basic_future::__basic_future</b> (const shared_future< _Res > &) <li><a class="anchor" id="ga33116b0b83a2a0dc86cfbc625adfc6f2"></a><!-- doxytag: member="futures::__basic_future" ref="ga33116b0b83a2a0dc86cfbc625adfc6f2" args="(shared_future< _Res > &&)" --> <b>std::__basic_future::__basic_future</b> (shared_future< _Res > &&) <li><a class="anchor" id="ga710b6480d0f5637005c2d515315237ae"></a><!-- doxytag: member="futures::__basic_future" ref="ga710b6480d0f5637005c2d515315237ae" args="(future< _Res > &&)" --> <b>std::__basic_future::__basic_future</b> (future< _Res > &&) <li><a class="anchor" id="gaf4075f3688429dc8c2648bd775becbe4"></a><!-- doxytag: member="futures::__setter" ref="gaf4075f3688429dc8c2648bd775becbe4" args="(promise< void > *__prom)" --> static _Setter< void, void > <b>std::__future_base::_State_base::__setter</b> (promise< void > *__prom) <li>template<typename _Fn , typename... _Args> future< typename result_of<br class="typebreak"/> < _Fn(_Args...)>::type > <a class="el" href="a01168.html#ga9f002fb98bf4508b3529c9fce27c4d6a">std::async</a> (launch __policy, _Fn &&__fn, _Args &&...__args) <li>template<typename _Fn , typename... _Args> __async_sfinae_helper<br class="typebreak"/> < typename decay< _Fn >::type, <br class="typebreak"/> _Fn, _Args...>::type <a class="el" href="a01168.html#ga79568d3431583f2fd71d8d4f9ce91dcb">std::async</a> (_Fn &&__fn, _Args &&...__args) <li>const error_category & <a class="el" href="a01168.html#ga9b48fb1c0842febf0839395205a896d5">std::future_category</a> () <li>error_code <a class="el" href="a01168.html#ga85df1657a6e6ddbbfd85b9a2c9c1013a">std::make_error_code</a> (future_errc __errc) <li>error_condition <a class="el" href="a01168.html#ga3cb77d18e504511e55a6f6e4f4d83156">std::make_error_condition</a> (future_errc __errc) <li><a class="anchor" id="ga72c3ec353a5cfd28ca914d46fdaca7d1"></a><!-- doxytag: member="futures::set_value" ref="ga72c3ec353a5cfd28ca914d46fdaca7d1" args="()" --> void <b>std::promise< void >::set_value</b> () <li><a class="anchor" id="ga8c0884e81a781e63fb79389db6b574cc"></a><!-- doxytag: member="futures::swap" ref="ga8c0884e81a781e63fb79389db6b574cc" args="(promise< _Res > &__x, promise< _Res > &__y)" --> template<typename _Res > void <b>std::swap</b> (promise< _Res > &__x, promise< _Res > &__y) <li>template<typename _Res , typename... _ArgTypes> void <a class="el" href="a01168.html#ga00415b0825a8d0541c5e47e8650ba8cc">std::swap</a> (packaged_task< _Res(_ArgTypes...)> &__x, packaged_task< _Res(_ArgTypes...)> &__y) </ul> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <p>Classes for futures support. </p> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="ga61938f7ac25df97b5362109e61bb46a6"></a><!-- doxytag: member="std::future_errc" ref="ga61938f7ac25df97b5362109e61bb46a6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="a01168.html#ga61938f7ac25df97b5362109e61bb46a6">std::future_errc</a></td> </tr> </table> </div> <div class="memdoc"> <p>Error code for futures. </p> <p>Definition at line <a class="el" href="a00888_source.html#l00061">61</a> of file <a class="el" href="a00888_source.html">future</a>.</p> </div> </div> <a class="anchor" id="ga528eb8f3b350394c0406d4d58ab7dbf4"></a><!-- doxytag: member="std::future_status" ref="ga528eb8f3b350394c0406d4d58ab7dbf4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="a01168.html#ga528eb8f3b350394c0406d4d58ab7dbf4">std::future_status</a></td> </tr> </table> </div> <div class="memdoc"> <p>Status code for futures. </p> <p>Definition at line <a class="el" href="a00888_source.html#l00134">134</a> of file <a class="el" href="a00888_source.html">future</a>.</p> </div> </div> <a class="anchor" id="ga6f4ad125d364f01560e2ed20a3c8bb5b"></a><!-- doxytag: member="std::launch" ref="ga6f4ad125d364f01560e2ed20a3c8bb5b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="a01168.html#ga6f4ad125d364f01560e2ed20a3c8bb5b">std::launch</a></td> </tr> </table> </div> <div class="memdoc"> <p>Launch code for futures. </p> <p>Definition at line <a class="el" href="a00888_source.html#l00126">126</a> of file <a class="el" href="a00888_source.html">future</a>.</p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga9f002fb98bf4508b3529c9fce27c4d6a"></a><!-- doxytag: member="std::async" ref="ga9f002fb98bf4508b3529c9fce27c4d6a" args="(launch __policy, _Fn &&__fn, _Args &&...__args)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Fn , typename... _Args> </div> <table class="memname"> <tr> <td class="memname">future< typename result_of< _Fn(_Args...)>::type > std::async </td> <td>(</td> <td class="paramtype">launch </td> <td class="paramname"><em>__policy</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">_Fn && </td> <td class="paramname"><em>__fn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">_Args &&... </td> <td class="paramname"><em>__args</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>async </p> <p>Definition at line <a class="el" href="a00888_source.html#l01355">1355</a> of file <a class="el" href="a00888_source.html">future</a>.</p> </div> </div> <a class="anchor" id="ga79568d3431583f2fd71d8d4f9ce91dcb"></a><!-- doxytag: member="std::async" ref="ga79568d3431583f2fd71d8d4f9ce91dcb" args="(_Fn &&__fn, _Args &&...__args)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Fn , typename... _Args> </div> <table class="memname"> <tr> <td class="memname">__async_sfinae_helper< typename decay< _Fn >::type, _Fn, _Args...>::type std::async </td> <td>(</td> <td class="paramtype">_Fn && </td> <td class="paramname"><em>__fn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">_Args &&... </td> <td class="paramname"><em>__args</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>async, potential overload </p> <p>Definition at line <a class="el" href="a00888_source.html#l01378">1378</a> of file <a class="el" href="a00888_source.html">future</a>.</p> </div> </div> <a class="anchor" id="ga9b48fb1c0842febf0839395205a896d5"></a><!-- doxytag: member="std::future_category" ref="ga9b48fb1c0842febf0839395205a896d5" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const error_category& std::future_category </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Points to a statically-allocated object derived from <a class="el" href="a00463.html" title="error_category">error_category</a>. </p> <p>Referenced by <a class="el" href="a00888_source.html#l00079">std::make_error_code()</a>, and <a class="el" href="a00888_source.html#l00084">std::make_error_condition()</a>.</p> </div> </div> <a class="anchor" id="ga85df1657a6e6ddbbfd85b9a2c9c1013a"></a><!-- doxytag: member="std::make_error_code" ref="ga85df1657a6e6ddbbfd85b9a2c9c1013a" args="(future_errc __errc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">error_code std::make_error_code </td> <td>(</td> <td class="paramtype">future_errc </td> <td class="paramname"><em>__errc</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Overload for make_error_code. </p> <p>Definition at line <a class="el" href="a00888_source.html#l00079">79</a> of file <a class="el" href="a00888_source.html">future</a>.</p> <p>References <a class="el" href="a01168.html#ga9b48fb1c0842febf0839395205a896d5">std::future_category()</a>.</p> </div> </div> <a class="anchor" id="ga3cb77d18e504511e55a6f6e4f4d83156"></a><!-- doxytag: member="std::make_error_condition" ref="ga3cb77d18e504511e55a6f6e4f4d83156" args="(future_errc __errc)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">error_condition std::make_error_condition </td> <td>(</td> <td class="paramtype">future_errc </td> <td class="paramname"><em>__errc</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Overload for make_error_condition. </p> <p>Definition at line <a class="el" href="a00888_source.html#l00084">84</a> of file <a class="el" href="a00888_source.html">future</a>.</p> <p>References <a class="el" href="a01168.html#ga9b48fb1c0842febf0839395205a896d5">std::future_category()</a>.</p> </div> </div> <a class="anchor" id="ga00415b0825a8d0541c5e47e8650ba8cc"></a><!-- doxytag: member="std::swap" ref="ga00415b0825a8d0541c5e47e8650ba8cc" args="(packaged_task< _Res(_ArgTypes...)> &__x, packaged_task< _Res(_ArgTypes...)> &__y)" --> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="memname"> <tr> <td class="memname">void std::swap </td> <td>(</td> <td class="paramtype">packaged_task< _Res(_ArgTypes...)> & </td> <td class="paramname"><em>__x</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">packaged_task< _Res(_ArgTypes...)> & </td> <td class="paramname"><em>__y</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>swap </p> <p>Definition at line <a class="el" href="a00888_source.html#l01289">1289</a> of file <a class="el" href="a00888_source.html">future</a>.</p> </div> </div> </div> </div> <div id="nav-path" class="navpath"> <ul> <li class="footer">Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li> </ul> </div> </body> </html>