123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
- <meta name="generator" content="Doxygen 1.8.17"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>librf: resumef::when_结构体 参考</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="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></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">librf
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- 制作者 Doxygen 1.8.17 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- var searchBox = new SearchBox("searchBox", "search",false,'搜索');
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- $(function() {
- initMenu('',true,false,'search.php','搜索');
- $(document).ready(function() { init_search(); });
- });
- /* @license-end */</script>
- <div id="main-nav"></div>
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
-
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
- </iframe>
- </div>
-
- <div id="nav-path" class="navpath">
- <ul>
- <li class="navelem"><b>resumef</b></li><li class="navelem"><a class="el" href="structresumef_1_1when__.html">when_</a></li> </ul>
- </div>
- </div><!-- top -->
- <div class="header">
- <div class="summary">
- <a href="#pub-methods">Public 成员函数</a> |
- <a href="structresumef_1_1when__-members.html">所有成员列表</a> </div>
- <div class="headertitle">
- <div class="title">resumef::when_结构体 参考</div> </div>
- </div><!--header-->
- <div class="contents">
-
- <p>目前不知道怎么在doxygen里面能搜集到全局函数的文档。故用一个结构体来欺骗doxygen。
- <a href="structresumef_1_1when__.html#details">更多...</a></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
- Public 成员函数</h2></td></tr>
- <tr class="memitem:a6ba9218688af965ccf6d4bd9e98b152a"><td class="memTemplParams" colspan="2">template<_WhenTaskT... _Awaitable> </td></tr>
- <tr class="memitem:a6ba9218688af965ccf6d4bd9e98b152a"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a6ba9218688af965ccf6d4bd9e98b152a">when_all</a> (<a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> &sch, _Awaitable &&... args) -> detail::when_future_t< std::tuple< detail::awaitor_result_t< _Awaitable >... > ></td></tr>
- <tr class="memdesc:a6ba9218688af965ccf6d4bd9e98b152a"><td class="mdescLeft"> </td><td class="mdescRight">等待所有的可等待对象完成,不定参数版。 <a href="structresumef_1_1when__.html#a6ba9218688af965ccf6d4bd9e98b152a">更多...</a><br /></td></tr>
- <tr class="separator:a6ba9218688af965ccf6d4bd9e98b152a"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a29810e8fe2efbfb395669971758182fe"><td class="memTemplParams" colspan="2">template<_WhenIterT _Iter> </td></tr>
- <tr class="memitem:a29810e8fe2efbfb395669971758182fe"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a29810e8fe2efbfb395669971758182fe">when_all</a> (<a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> &sch, _Iter begin, _Iter end) -> detail::when_future_t< std::vector< detail::awaitor_result_t< decltype(*std::declval< _Iter >())> > ></td></tr>
- <tr class="memdesc:a29810e8fe2efbfb395669971758182fe"><td class="mdescLeft"> </td><td class="mdescRight">等待所有的可等待对象完成,迭代器版。 <a href="structresumef_1_1when__.html#a29810e8fe2efbfb395669971758182fe">更多...</a><br /></td></tr>
- <tr class="separator:a29810e8fe2efbfb395669971758182fe"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a66d4fc83bbdbe36232615ff7d0459049"><td class="memTemplParams" colspan="2">template<_ContainerT _Cont> </td></tr>
- <tr class="memitem:a66d4fc83bbdbe36232615ff7d0459049"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto) </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a66d4fc83bbdbe36232615ff7d0459049">when_all</a> (<a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> &sch, _Cont &cont)</td></tr>
- <tr class="memdesc:a66d4fc83bbdbe36232615ff7d0459049"><td class="mdescLeft"> </td><td class="mdescRight">等待所有的可等待对象完成,容器版。 <a href="structresumef_1_1when__.html#a66d4fc83bbdbe36232615ff7d0459049">更多...</a><br /></td></tr>
- <tr class="separator:a66d4fc83bbdbe36232615ff7d0459049"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a1d453b444cfaa704cf7a1da01eed49b9"><td class="memTemplParams" colspan="2">template<_WhenTaskT... _Awaitable> </td></tr>
- <tr class="memitem:a1d453b444cfaa704cf7a1da01eed49b9"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a1d453b444cfaa704cf7a1da01eed49b9">when_all</a> (_Awaitable &&... args) -> <a class="el" href="structresumef_1_1future__t.html">future_t</a>< std::tuple< detail::awaitor_result_t< _Awaitable >... >></td></tr>
- <tr class="memdesc:a1d453b444cfaa704cf7a1da01eed49b9"><td class="mdescLeft"> </td><td class="mdescRight">等待所有的可等待对象完成,不定参数版。 <a href="structresumef_1_1when__.html#a1d453b444cfaa704cf7a1da01eed49b9">更多...</a><br /></td></tr>
- <tr class="separator:a1d453b444cfaa704cf7a1da01eed49b9"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9b8ec7229b5c7dd7c2ae58d3365799dc"><td class="memTemplParams" colspan="2">template<_WhenIterT _Iter> </td></tr>
- <tr class="memitem:a9b8ec7229b5c7dd7c2ae58d3365799dc"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a9b8ec7229b5c7dd7c2ae58d3365799dc">when_all</a> (_Iter begin, _Iter end) -> <a class="el" href="structresumef_1_1future__t.html">future_t</a>< std::vector< detail::awaitor_result_t< decltype(*begin)>>></td></tr>
- <tr class="memdesc:a9b8ec7229b5c7dd7c2ae58d3365799dc"><td class="mdescLeft"> </td><td class="mdescRight">等待所有的可等待对象完成,迭代器版。 <a href="structresumef_1_1when__.html#a9b8ec7229b5c7dd7c2ae58d3365799dc">更多...</a><br /></td></tr>
- <tr class="separator:a9b8ec7229b5c7dd7c2ae58d3365799dc"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aa2a8218ff1eb6cb48fb981310a284b84"><td class="memTemplParams" colspan="2">template<_ContainerT _Cont> </td></tr>
- <tr class="memitem:aa2a8218ff1eb6cb48fb981310a284b84"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#aa2a8218ff1eb6cb48fb981310a284b84">when_all</a> (_Cont &&cont) -> <a class="el" href="structresumef_1_1future__t.html">future_t</a>< std::vector< detail::awaitor_result_t< decltype(*std::begin(cont))>>></td></tr>
- <tr class="memdesc:aa2a8218ff1eb6cb48fb981310a284b84"><td class="mdescLeft"> </td><td class="mdescRight">等待所有的可等待对象完成,容器版。 <a href="structresumef_1_1when__.html#aa2a8218ff1eb6cb48fb981310a284b84">更多...</a><br /></td></tr>
- <tr class="separator:aa2a8218ff1eb6cb48fb981310a284b84"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:af4fe05b26abdab4ff00505ce56674ef9"><td class="memTemplParams" colspan="2">template<_WhenTaskT... _Awaitable> </td></tr>
- <tr class="memitem:af4fe05b26abdab4ff00505ce56674ef9"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#af4fe05b26abdab4ff00505ce56674ef9">when_any</a> (<a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> &sch, _Awaitable &&... args) -> detail::when_future_t< when_any_pair ></td></tr>
- <tr class="memdesc:af4fe05b26abdab4ff00505ce56674ef9"><td class="mdescLeft"> </td><td class="mdescRight">等待任一的可等待对象完成,不定参数版。 <a href="structresumef_1_1when__.html#af4fe05b26abdab4ff00505ce56674ef9">更多...</a><br /></td></tr>
- <tr class="separator:af4fe05b26abdab4ff00505ce56674ef9"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5eb64c53feea7f37b643f9b9c3faf685"><td class="memTemplParams" colspan="2">template<_WhenIterT _Iter> </td></tr>
- <tr class="memitem:a5eb64c53feea7f37b643f9b9c3faf685"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a5eb64c53feea7f37b643f9b9c3faf685">when_any</a> (<a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> &sch, _Iter begin, _Iter end) -> detail::when_future_t< when_any_pair ></td></tr>
- <tr class="memdesc:a5eb64c53feea7f37b643f9b9c3faf685"><td class="mdescLeft"> </td><td class="mdescRight">等待任一的可等待对象完成,迭代器版。 <a href="structresumef_1_1when__.html#a5eb64c53feea7f37b643f9b9c3faf685">更多...</a><br /></td></tr>
- <tr class="separator:a5eb64c53feea7f37b643f9b9c3faf685"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a753478e5b7b3df202efc98c0274484e8"><td class="memTemplParams" colspan="2">template<_ContainerT _Cont> </td></tr>
- <tr class="memitem:a753478e5b7b3df202efc98c0274484e8"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a753478e5b7b3df202efc98c0274484e8">when_any</a> (<a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> &sch, _Cont &cont) -> detail::when_future_t< when_any_pair ></td></tr>
- <tr class="memdesc:a753478e5b7b3df202efc98c0274484e8"><td class="mdescLeft"> </td><td class="mdescRight">等待任一的可等待对象完成,容器版。 <a href="structresumef_1_1when__.html#a753478e5b7b3df202efc98c0274484e8">更多...</a><br /></td></tr>
- <tr class="separator:a753478e5b7b3df202efc98c0274484e8"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a4ec23495051e2b682f27ce0b3d527305"><td class="memTemplParams" colspan="2">template<_WhenTaskT... _Awaitable> </td></tr>
- <tr class="memitem:a4ec23495051e2b682f27ce0b3d527305"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a4ec23495051e2b682f27ce0b3d527305">when_any</a> (_Awaitable &&... args) -> <a class="el" href="structresumef_1_1future__t.html">future_t</a>< when_any_pair ></td></tr>
- <tr class="memdesc:a4ec23495051e2b682f27ce0b3d527305"><td class="mdescLeft"> </td><td class="mdescRight">等待任一的可等待对象完成,不定参数版。 <a href="structresumef_1_1when__.html#a4ec23495051e2b682f27ce0b3d527305">更多...</a><br /></td></tr>
- <tr class="separator:a4ec23495051e2b682f27ce0b3d527305"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8595c1bc0659b67724654b6661537058"><td class="memTemplParams" colspan="2">template<_WhenIterT _Iter> </td></tr>
- <tr class="memitem:a8595c1bc0659b67724654b6661537058"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a8595c1bc0659b67724654b6661537058">when_any</a> (_Iter begin, _Iter end) -> <a class="el" href="structresumef_1_1future__t.html">future_t</a>< when_any_pair ></td></tr>
- <tr class="memdesc:a8595c1bc0659b67724654b6661537058"><td class="mdescLeft"> </td><td class="mdescRight">等待任一的可等待对象完成,迭代器版。 <a href="structresumef_1_1when__.html#a8595c1bc0659b67724654b6661537058">更多...</a><br /></td></tr>
- <tr class="separator:a8595c1bc0659b67724654b6661537058"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a0b9b2f88f5c8cd76dd8d1c70926cc029"><td class="memTemplParams" colspan="2">template<_ContainerT _Cont> </td></tr>
- <tr class="memitem:a0b9b2f88f5c8cd76dd8d1c70926cc029"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structresumef_1_1when__.html#a0b9b2f88f5c8cd76dd8d1c70926cc029">when_any</a> (_Cont &&cont) -> <a class="el" href="structresumef_1_1future__t.html">future_t</a>< when_any_pair ></td></tr>
- <tr class="memdesc:a0b9b2f88f5c8cd76dd8d1c70926cc029"><td class="mdescLeft"> </td><td class="mdescRight">等待任一的可等待对象完成,容器版。 <a href="structresumef_1_1when__.html#a0b9b2f88f5c8cd76dd8d1c70926cc029">更多...</a><br /></td></tr>
- <tr class="separator:a0b9b2f88f5c8cd76dd8d1c70926cc029"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
- <div class="textblock"><p>目前不知道怎么在doxygen里面能搜集到全局函数的文档。故用一个结构体来欺骗doxygen。 </p>
- <p>其下的所有成员函数,均是全局函数。 </p>
- </div><h2 class="groupheader">成员函数说明</h2>
- <a id="a1d453b444cfaa704cf7a1da01eed49b9"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a1d453b444cfaa704cf7a1da01eed49b9">◆ </a></span>when_all() <span class="overload">[1/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_WhenTaskT... _Awaitable> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_all </td>
- <td>(</td>
- <td class="paramtype">_Awaitable &&... </td>
- <td class="paramname"><em>args</em></td><td>)</td>
- <td> -> <a class="el" href="structresumef_1_1future__t.html">future_t</a><std::tuple<detail::awaitor_result_t<_Awaitable>...>>
- </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>等待所有的可等待对象完成,不定参数版。 </p>
- <p>当前协程的调度器通过current_scheduler()宏获得,与带调度器参数的版本相比,多一次resumeable function构造,效率可能低一点。 </p><dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">args...</td><td>所有的可等待对象。要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::tuple<...>。每个可等待对象的返回值,逐个存入到std::tuple<...>里面。void 返回值,存的是std::ignore。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="aa2a8218ff1eb6cb48fb981310a284b84"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#aa2a8218ff1eb6cb48fb981310a284b84">◆ </a></span>when_all() <span class="overload">[2/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_ContainerT _Cont> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_all </td>
- <td>(</td>
- <td class="paramtype">_Cont && </td>
- <td class="paramname"><em>cont</em></td><td>)</td>
- <td> -> <a class="el" href="structresumef_1_1future__t.html">future_t</a><std::vector<detail::awaitor_result_t<decltype(*std::begin(cont))>>>
- </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>等待所有的可等待对象完成,容器版。 </p>
- <p>当前协程的调度器通过current_scheduler()宏获得,与带调度器参数的版本相比,多一次resumeable function构造,效率可能低一点。 </p><dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">cont</td><td>存访可等待对象的容器。容器内存放的,要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::vector<>。每个可等待对象的返回值,逐个存入到std::vector<>里面。void 返回值,存的是std::ignore。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a9b8ec7229b5c7dd7c2ae58d3365799dc"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a9b8ec7229b5c7dd7c2ae58d3365799dc">◆ </a></span>when_all() <span class="overload">[3/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_WhenIterT _Iter> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_all </td>
- <td>(</td>
- <td class="paramtype">_Iter </td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Iter </td>
- <td class="paramname"><em>end</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td> -> <a class="el" href="structresumef_1_1future__t.html">future_t</a><std::vector<detail::awaitor_result_t<decltype(*begin)>>>
- </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>等待所有的可等待对象完成,迭代器版。 </p>
- <p>当前协程的调度器通过current_scheduler()宏获得,与带调度器参数的版本相比,多一次resumeable function构造,效率可能低一点。 </p><dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">begin</td><td>可等待对象容器的起始迭代器。迭代器指向的,要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- <tr><td class="paramname">end</td><td>可等待对象容器的结束迭代器。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::vector<>。每个可等待对象的返回值,逐个存入到std::vector<>里面。void 返回值,存的是std::ignore。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a6ba9218688af965ccf6d4bd9e98b152a"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a6ba9218688af965ccf6d4bd9e98b152a">◆ </a></span>when_all() <span class="overload">[4/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_WhenTaskT... _Awaitable> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_all </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> & </td>
- <td class="paramname"><em>sch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Awaitable &&... </td>
- <td class="paramname"><em>args</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td> -> detail::when_future_t<std::tuple<detail::awaitor_result_t<_Awaitable>...> >
- </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>等待所有的可等待对象完成,不定参数版。 </p>
- <dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">sch</td><td>当前协程的调度器。 </td></tr>
- <tr><td class="paramname">args...</td><td>所有的可等待对象。要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::tuple<...>。每个可等待对象的返回值,逐个存入到std::tuple<...>里面。void 返回值,存的是std::ignore。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a66d4fc83bbdbe36232615ff7d0459049"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a66d4fc83bbdbe36232615ff7d0459049">◆ </a></span>when_all() <span class="overload">[5/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_ContainerT _Cont> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">decltype(auto) resumef::when_::when_all </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> & </td>
- <td class="paramname"><em>sch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Cont & </td>
- <td class="paramname"><em>cont</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>等待所有的可等待对象完成,容器版。 </p>
- <dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">sch</td><td>当前协程的调度器。 </td></tr>
- <tr><td class="paramname">cont</td><td>存访可等待对象的容器。容器内存放的,要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::vector<>。每个可等待对象的返回值,逐个存入到std::vector<>里面。void 返回值,存的是std::ignore。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a29810e8fe2efbfb395669971758182fe"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a29810e8fe2efbfb395669971758182fe">◆ </a></span>when_all() <span class="overload">[6/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_WhenIterT _Iter> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_all </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> & </td>
- <td class="paramname"><em>sch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Iter </td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Iter </td>
- <td class="paramname"><em>end</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td> -> detail::when_future_t<std::vector<detail::awaitor_result_t<decltype(*std::declval<_Iter>())> > >
- </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>等待所有的可等待对象完成,迭代器版。 </p>
- <dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">sch</td><td>当前协程的调度器。 </td></tr>
- <tr><td class="paramname">begin</td><td>可等待对象容器的起始迭代器。迭代器指向的,要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- <tr><td class="paramname">end</td><td>可等待对象容器的结束迭代器。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::vector<>。每个可等待对象的返回值,逐个存入到std::vector<>里面。void 返回值,存的是std::ignore。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a4ec23495051e2b682f27ce0b3d527305"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a4ec23495051e2b682f27ce0b3d527305">◆ </a></span>when_any() <span class="overload">[1/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_WhenTaskT... _Awaitable> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_any </td>
- <td>(</td>
- <td class="paramtype">_Awaitable &&... </td>
- <td class="paramname"><em>args</em></td><td>)</td>
- <td> -> <a class="el" href="structresumef_1_1future__t.html">future_t</a><when_any_pair>
- </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>等待任一的可等待对象完成,不定参数版。 </p>
- <p>当前协程的调度器通过current_scheduler()宏获得,与带调度器参数的版本相比,多一次resumeable function构造,效率可能低一点。 </p><dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">args...</td><td>所有的可等待对象。要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::pair<intptr_t, std::any>。第一个值指示哪个对象完成了,第二个值存访的对应的返回数据。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a0b9b2f88f5c8cd76dd8d1c70926cc029"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a0b9b2f88f5c8cd76dd8d1c70926cc029">◆ </a></span>when_any() <span class="overload">[2/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_ContainerT _Cont> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_any </td>
- <td>(</td>
- <td class="paramtype">_Cont && </td>
- <td class="paramname"><em>cont</em></td><td>)</td>
- <td> -> <a class="el" href="structresumef_1_1future__t.html">future_t</a><when_any_pair>
- </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>等待任一的可等待对象完成,容器版。 </p>
- <p>当前协程的调度器通过current_scheduler()宏获得,与带调度器参数的版本相比,多一次resumeable function构造,效率可能低一点。 </p><dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">cont</td><td>存访可等待对象的容器。容器内存放的,要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::pair<intptr_t, std::any>。第一个值指示哪个对象完成了,第二个值存访的对应的返回数据。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a8595c1bc0659b67724654b6661537058"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a8595c1bc0659b67724654b6661537058">◆ </a></span>when_any() <span class="overload">[3/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_WhenIterT _Iter> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_any </td>
- <td>(</td>
- <td class="paramtype">_Iter </td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Iter </td>
- <td class="paramname"><em>end</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td> -> <a class="el" href="structresumef_1_1future__t.html">future_t</a><when_any_pair>
- </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>等待任一的可等待对象完成,迭代器版。 </p>
- <p>当前协程的调度器通过current_scheduler()宏获得,与带调度器参数的版本相比,多一次resumeable function构造,效率可能低一点。 </p><dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">begin</td><td>可等待对象容器的起始迭代器。迭代器指向的,要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- <tr><td class="paramname">end</td><td>可等待对象容器的结束迭代器。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::pair<intptr_t, std::any>。第一个值指示哪个对象完成了,第二个值存访的对应的返回数据。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="af4fe05b26abdab4ff00505ce56674ef9"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#af4fe05b26abdab4ff00505ce56674ef9">◆ </a></span>when_any() <span class="overload">[4/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_WhenTaskT... _Awaitable> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_any </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> & </td>
- <td class="paramname"><em>sch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Awaitable &&... </td>
- <td class="paramname"><em>args</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td> -> detail::when_future_t<when_any_pair>
- </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>等待任一的可等待对象完成,不定参数版。 </p>
- <dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">sch</td><td>当前协程的调度器。 </td></tr>
- <tr><td class="paramname">args...</td><td>所有的可等待对象。要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::pair<intptr_t, std::any>。第一个值指示哪个对象完成了,第二个值存访的对应的返回数据。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a753478e5b7b3df202efc98c0274484e8"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a753478e5b7b3df202efc98c0274484e8">◆ </a></span>when_any() <span class="overload">[5/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_ContainerT _Cont> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_any </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> & </td>
- <td class="paramname"><em>sch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Cont & </td>
- <td class="paramname"><em>cont</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td> -> detail::when_future_t<when_any_pair>
- </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>等待任一的可等待对象完成,容器版。 </p>
- <dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">sch</td><td>当前协程的调度器。 </td></tr>
- <tr><td class="paramname">cont</td><td>存访可等待对象的容器。容器内存放的,要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::pair<intptr_t, std::any>。第一个值指示哪个对象完成了,第二个值存访的对应的返回数据。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <a id="a5eb64c53feea7f37b643f9b9c3faf685"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a5eb64c53feea7f37b643f9b9c3faf685">◆ </a></span>when_any() <span class="overload">[6/6]</span></h2>
-
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<_WhenIterT _Iter> </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">auto resumef::when_::when_any </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="structresumef_1_1scheduler__t.html">scheduler_t</a> & </td>
- <td class="paramname"><em>sch</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Iter </td>
- <td class="paramname"><em>begin</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">_Iter </td>
- <td class="paramname"><em>end</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td> -> detail::when_future_t<when_any_pair>
- </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>等待任一的可等待对象完成,迭代器版。 </p>
- <dl class="params"><dt>参数</dt><dd>
- <table class="params">
- <tr><td class="paramname">sch</td><td>当前协程的调度器。 </td></tr>
- <tr><td class="paramname">begin</td><td>可等待对象容器的起始迭代器。迭代器指向的,要么是_AwaitableT<>类型,要么是返回_AwaitableT<>类型的函数(对象)。 </td></tr>
- <tr><td class="paramname">end</td><td>可等待对象容器的结束迭代器。 </td></tr>
- </table>
- </dd>
- </dl>
- <dl class="retval"><dt>返回值</dt><dd>
- <table class="retval">
- <tr><td class="paramname">[co_await]</td><td>std::pair<intptr_t, std::any>。第一个值指示哪个对象完成了,第二个值存访的对应的返回数据。 </td></tr>
- </table>
- </dd>
- </dl>
-
- </div>
- </div>
- <hr/>该结构体的文档由以下文件生成:<ul>
- <li>librf/src/<a class="el" href="when__v2_8h_source.html">when_v2.h</a></li>
- </ul>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- 制作者  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.17
- </small></address>
- </body>
- </html>
|