<!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.15"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>libstdc++: std::function< _Res(_ArgTypes...)> Class Template Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtreedata.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</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.15 --> </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"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('a07136.html','');}); /* @license-end */ </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="#pri-types">Private Types</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> | <a href="#pri-static-attribs">Static Private Attributes</a> | <a href="a07133.html">List of all members</a> </div> <div class="headertitle"> <div class="title">std::function< _Res(_ArgTypes...)> Class Template Reference<div class="ingroups"><a class="el" href="a01477.html">Utilities</a> » <a class="el" href="a01496.html">Function Objects</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Inheritance diagram for std::function< _Res(_ArgTypes...)>:</div> <div class="dyncontent"> <div class="center"><iframe scrolling="no" frameborder="0" src="a07135.svg" width="323" height="150"><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:a81dd2ae5fb6d9bfb9fe84fdc2c741b20"><td class="memItemLeft" align="right" valign="top"><a id="a81dd2ae5fb6d9bfb9fe84fdc2c741b20"></a> typedef _Res </td><td class="memItemRight" valign="bottom"><b>result_type</b></td></tr> <tr class="separator:a81dd2ae5fb6d9bfb9fe84fdc2c741b20"><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:aabc5bfd9d463ca6a06aa8198a1f12e14"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> () noexcept</td></tr> <tr class="separator:aabc5bfd9d463ca6a06aa8198a1f12e14"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4a3d52a1f71572613d699d0593479615"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#a4a3d52a1f71572613d699d0593479615">function</a> (nullptr_t) noexcept</td></tr> <tr class="separator:a4a3d52a1f71572613d699d0593479615"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8869fed86e489fcedbf59cd814f440b3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#a8869fed86e489fcedbf59cd814f440b3">function</a> (const function &__x)</td></tr> <tr class="separator:a8869fed86e489fcedbf59cd814f440b3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a91f39c85ac536220f5efd7e505fc73e6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#a91f39c85ac536220f5efd7e505fc73e6">function</a> (function &&__x) noexcept</td></tr> <tr class="separator:a91f39c85ac536220f5efd7e505fc73e6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8c5a08fdc36581c53fa597667322cf7d"><td class="memTemplParams" colspan="2">template<typename _Functor , typename = _Requires<__not_<is_same<_Functor, function>>, void>, typename = _Requires<_Callable<_Functor>, void>> </td></tr> <tr class="memitem:a8c5a08fdc36581c53fa597667322cf7d"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a07136.html#a8c5a08fdc36581c53fa597667322cf7d">function</a> (_Functor)</td></tr> <tr class="separator:a8c5a08fdc36581c53fa597667322cf7d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2804a8e2d69cd03550a87d46d153c165"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#a2804a8e2d69cd03550a87d46d153c165">operator bool</a> () const noexcept</td></tr> <tr class="separator:a2804a8e2d69cd03550a87d46d153c165"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab0bfbd15574ba442c644604dc18c4750"><td class="memItemLeft" align="right" valign="top">_Res </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#ab0bfbd15574ba442c644604dc18c4750">operator()</a> (_ArgTypes... __args) const</td></tr> <tr class="separator:ab0bfbd15574ba442c644604dc18c4750"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a698ecd83665a25c0c1f9cbe2ea85c2a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#a698ecd83665a25c0c1f9cbe2ea85c2a0">operator=</a> (const <a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> &__x)</td></tr> <tr class="separator:a698ecd83665a25c0c1f9cbe2ea85c2a0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a00bb39127d1936767cbfd81c4bb02354"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#a00bb39127d1936767cbfd81c4bb02354">operator=</a> (<a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> &&__x) noexcept</td></tr> <tr class="separator:a00bb39127d1936767cbfd81c4bb02354"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a05ea81faa27f6b5511b699634b83c4a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#a05ea81faa27f6b5511b699634b83c4a8">operator=</a> (nullptr_t) noexcept</td></tr> <tr class="separator:a05ea81faa27f6b5511b699634b83c4a8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afbb6bdd269617d2793d4dbbb078f6707"><td class="memTemplParams" colspan="2">template<typename _Functor > </td></tr> <tr class="memitem:afbb6bdd269617d2793d4dbbb078f6707"><td class="memTemplItemLeft" align="right" valign="top">_Requires< _Callable< typename <a class="el" href="a04168.html">decay</a>< _Functor >::type >, <a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> & > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a07136.html#afbb6bdd269617d2793d4dbbb078f6707">operator=</a> (_Functor &&__f)</td></tr> <tr class="separator:afbb6bdd269617d2793d4dbbb078f6707"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afc4ca535d5508c13e9112b39c8c064d4"><td class="memTemplParams" colspan="2">template<typename _Functor > </td></tr> <tr class="memitem:afc4ca535d5508c13e9112b39c8c064d4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> & </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a07136.html#afc4ca535d5508c13e9112b39c8c064d4">operator=</a> (<a class="el" href="a04172.html">reference_wrapper</a>< _Functor > __f) noexcept</td></tr> <tr class="separator:afc4ca535d5508c13e9112b39c8c064d4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad6e98060b15f59120e426a787febf1a5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#ad6e98060b15f59120e426a787febf1a5">swap</a> (<a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a> &__x) noexcept</td></tr> <tr class="separator:ad6e98060b15f59120e426a787febf1a5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a68e477681a31511e5586cd30e7642a51"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a01668.html">type_info</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a07136.html#a68e477681a31511e5586cd30e7642a51">target_type</a> () const noexcept</td></tr> <tr class="separator:a68e477681a31511e5586cd30e7642a51"><td class="memSeparator" colspan="2"> </td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr class="memitem:a35397202fc2bfb04958450d0a02836d3"><td class="memTemplParams" colspan="2">template<typename _Functor > </td></tr> <tr class="memitem:a35397202fc2bfb04958450d0a02836d3"><td class="memTemplItemLeft" align="right" valign="top">_Functor * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a07136.html#a35397202fc2bfb04958450d0a02836d3">target</a> () noexcept</td></tr> <tr class="separator:a35397202fc2bfb04958450d0a02836d3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1ec2969ae6cf0413547dab469503c843"><td class="memTemplParams" colspan="2">template<typename _Functor > </td></tr> <tr class="memitem:a1ec2969ae6cf0413547dab469503c843"><td class="memTemplItemLeft" align="right" valign="top">const _Functor * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a07136.html#a1ec2969ae6cf0413547dab469503c843">target</a> () const noexcept</td></tr> <tr class="separator:a1ec2969ae6cf0413547dab469503c843"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a> Private Types</h2></td></tr> <tr class="memitem:a60deed2eccace86cdc80bee041798f78"><td class="memItemLeft" align="right" valign="top"><a id="a60deed2eccace86cdc80bee041798f78"></a> typedef bool(* </td><td class="memItemRight" valign="bottom"><b>_Manager_type</b>) (_Any_data &, const _Any_data &, _Manager_operation)</td></tr> <tr class="separator:a60deed2eccace86cdc80bee041798f78"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr class="memitem:ab95916ff90405d284fed30ef1873f2f2"><td class="memItemLeft" align="right" valign="top"><a id="ab95916ff90405d284fed30ef1873f2f2"></a> bool </td><td class="memItemRight" valign="bottom"><b>_M_empty</b> () const</td></tr> <tr class="separator:ab95916ff90405d284fed30ef1873f2f2"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr class="memitem:a2e96e5cb42609bb4e5d96f351ed14f01"><td class="memItemLeft" align="right" valign="top"><a id="a2e96e5cb42609bb4e5d96f351ed14f01"></a> _Any_data </td><td class="memItemRight" valign="bottom"><b>_M_functor</b></td></tr> <tr class="separator:a2e96e5cb42609bb4e5d96f351ed14f01"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3bf92d62608dfa3feb8ec1ab2951e72b"><td class="memItemLeft" align="right" valign="top"><a id="a3bf92d62608dfa3feb8ec1ab2951e72b"></a> _Manager_type </td><td class="memItemRight" valign="bottom"><b>_M_manager</b></td></tr> <tr class="separator:a3bf92d62608dfa3feb8ec1ab2951e72b"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a> Static Private Attributes</h2></td></tr> <tr class="memitem:ac5166832f25a05f78ccd303e8c6e5609"><td class="memItemLeft" align="right" valign="top"><a id="ac5166832f25a05f78ccd303e8c6e5609"></a> static const std::size_t </td><td class="memItemRight" valign="bottom"><b>_M_max_align</b></td></tr> <tr class="separator:ac5166832f25a05f78ccd303e8c6e5609"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aabe5249f1ddb3ebdd1b64f26b4f4eb92"><td class="memItemLeft" align="right" valign="top"><a id="aabe5249f1ddb3ebdd1b64f26b4f4eb92"></a> static const std::size_t </td><td class="memItemRight" valign="bottom"><b>_M_max_size</b></td></tr> <tr class="separator:aabe5249f1ddb3ebdd1b64f26b4f4eb92"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<typename _Res, typename... _ArgTypes><br /> class std::function< _Res(_ArgTypes...)></h3> <p>Primary class template for std::function.</p> <p>Polymorphic function wrapper. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00370">370</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="aabc5bfd9d463ca6a06aa8198a1f12e14"></a> <h2 class="memtitle"><span class="permalink"><a href="#aabc5bfd9d463ca6a06aa8198a1f12e14">◆ </a></span>function() <span class="overload">[1/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::function< _Res(_ArgTypes...)>::function </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Default construct creates an empty function call wrapper. </p> <dl class="section post"><dt>Postcondition</dt><dd><code>!</code>(bool)*this </dd></dl> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00395">395</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a4a3d52a1f71572613d699d0593479615"></a> <h2 class="memtitle"><span class="permalink"><a href="#a4a3d52a1f71572613d699d0593479615">◆ </a></span>function() <span class="overload">[2/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::function< _Res(_ArgTypes...)>::function </td> <td>(</td> <td class="paramtype">nullptr_t </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Creates an empty function call wrapper. </p> <dl class="section post"><dt>Postcondition</dt><dd><code>!</code>(bool)*this </dd></dl> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00402">402</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a8869fed86e489fcedbf59cd814f440b3"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8869fed86e489fcedbf59cd814f440b3">◆ </a></span>function() <span class="overload">[3/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="memname"> <tr> <td class="memname">std::function< _Res(_ArgTypes...)>::function </td> <td>(</td> <td class="paramtype">const function< _Res(_ArgTypes...)> & </td> <td class="paramname"><em>__x</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Function copy constructor. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__x</td><td>A function object with identical call signature. </td></tr> </table> </dd> </dl> <dl class="section post"><dt>Postcondition</dt><dd><code>bool(*this)</code> == bool(__x)</dd></dl> <p>The newly-created function contains a copy of the target of <em>__x</em> (if it has one). </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00653">653</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a91f39c85ac536220f5efd7e505fc73e6"></a> <h2 class="memtitle"><span class="permalink"><a href="#a91f39c85ac536220f5efd7e505fc73e6">◆ </a></span>function() <span class="overload">[4/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::function< _Res(_ArgTypes...)>::function </td> <td>(</td> <td class="paramtype">function< _Res(_ArgTypes...)> && </td> <td class="paramname"><em>__x</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Function move constructor. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__x</td><td>A function object rvalue with identical call signature.</td></tr> </table> </dd> </dl> <p>The newly-created function contains the target of <em>__x</em> (if it has one). </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00422">422</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a8c5a08fdc36581c53fa597667322cf7d"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8c5a08fdc36581c53fa597667322cf7d">◆ </a></span>function() <span class="overload">[5/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <div class="memtemplate"> template<typename _Functor , typename , typename > </div> <table class="memname"> <tr> <td class="memname">std::function< _Res(_ArgTypes...)>::function </td> <td>(</td> <td class="paramtype">_Functor </td> <td class="paramname"><em>__f</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Builds a function that targets a copy of the incoming function object. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__f</td><td>A function object that is callable with parameters of type <code>T1</code>, <code>T2</code>, ..., <code>TN</code> and returns a value convertible to <code>Res</code>.</td></tr> </table> </dd> </dl> <p>The newly-created function object will target a copy of <em>__f</em>. If <em>__f</em> is <code>reference_wrapper<F></code>, then this function object will contain a reference to the function object <code>__f.get()</code>. If <em>__f</em> is a NULL function pointer or NULL pointer-to-member, the newly-created object will be empty.</p> <p>If <em>__f</em> is a non-NULL function pointer or an object of type <code>reference_wrapper<F></code>, this function will not throw. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00667">667</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="a2804a8e2d69cd03550a87d46d153c165"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2804a8e2d69cd03550a87d46d153c165">◆ </a></span>operator bool()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::function< _Res(_ArgTypes...)>::operator bool </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Determine if the function wrapper has a target. </p> <dl class="section return"><dt>Returns</dt><dd><code>true</code> when this function object contains a target, or <code>false</code> when it is empty.</dd></dl> <p>This function will not throw an exception. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00563">563</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="ab0bfbd15574ba442c644604dc18c4750"></a> <h2 class="memtitle"><span class="permalink"><a href="#ab0bfbd15574ba442c644604dc18c4750">◆ </a></span>operator()()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="memname"> <tr> <td class="memname">_Res std::function< _Res(_ArgTypes...)>::operator() </td> <td>(</td> <td class="paramtype">_ArgTypes... </td> <td class="paramname"><em>__args</em></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Invokes the function targeted by <code>*this</code>. </p> <dl class="section return"><dt>Returns</dt><dd>the result of the target. </dd></dl> <dl class="exception"><dt>Exceptions</dt><dd> <table class="exception"> <tr><td class="paramname">bad_function_call</td><td>when <code>!</code>(bool)*this</td></tr> </table> </dd> </dl> <p>The function call operator invokes the target function object stored by <code>this</code>. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00683">683</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a698ecd83665a25c0c1f9cbe2ea85c2a0"></a> <h2 class="memtitle"><span class="permalink"><a href="#a698ecd83665a25c0c1f9cbe2ea85c2a0">◆ </a></span>operator=() <span class="overload">[1/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a>& std::function< _Res(_ArgTypes...)>::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a>< _Res(_ArgTypes...)> & </td> <td class="paramname"><em>__x</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>Function assignment operator. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__x</td><td>A function with identical call signature. </td></tr> </table> </dd> </dl> <dl class="section post"><dt>Postcondition</dt><dd><code></code>(bool)*this == (bool)x </dd></dl> <dl class="section return"><dt>Returns</dt><dd><code>*this</code> </dd></dl> <p>The target of <em>__x</em> is copied to <code>*this</code>. If <em>__x</em> has no target, then <code>*this</code> will be empty.</p> <p>If <em>__x</em> targets a function pointer or a reference to a function object, then this operation will not throw an exception. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00461">461</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a00bb39127d1936767cbfd81c4bb02354"></a> <h2 class="memtitle"><span class="permalink"><a href="#a00bb39127d1936767cbfd81c4bb02354">◆ </a></span>operator=() <span class="overload">[2/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a>& std::function< _Res(_ArgTypes...)>::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a>< _Res(_ArgTypes...)> && </td> <td class="paramname"><em>__x</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Function move-assignment operator. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__x</td><td>A function rvalue with identical call signature. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd><code>*this</code> </dd></dl> <p>The target of <em>__x</em> is moved to <code>*this</code>. If <em>__x</em> has no target, then <code>*this</code> will be empty.</p> <p>If <em>__x</em> targets a function pointer or a reference to a function object, then this operation will not throw an exception. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00479">479</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a05ea81faa27f6b5511b699634b83c4a8"></a> <h2 class="memtitle"><span class="permalink"><a href="#a05ea81faa27f6b5511b699634b83c4a8">◆ </a></span>operator=() <span class="overload">[3/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a>& std::function< _Res(_ArgTypes...)>::operator= </td> <td>(</td> <td class="paramtype">nullptr_t </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Function assignment to zero. </p> <dl class="section post"><dt>Postcondition</dt><dd><code>!</code>(bool)*this </dd></dl> <dl class="section return"><dt>Returns</dt><dd><code>*this</code> </dd></dl> <p>The target of <code>*this</code> is deallocated, leaving it empty. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00493">493</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="afbb6bdd269617d2793d4dbbb078f6707"></a> <h2 class="memtitle"><span class="permalink"><a href="#afbb6bdd269617d2793d4dbbb078f6707">◆ </a></span>operator=() <span class="overload">[4/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <div class="memtemplate"> template<typename _Functor > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">_Requires<_Callable<typename <a class="el" href="a04168.html">decay</a><_Functor>::type>, <a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a>&> std::function< _Res(_ArgTypes...)>::operator= </td> <td>(</td> <td class="paramtype">_Functor && </td> <td class="paramname"><em>__f</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>Function assignment to a new target. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__f</td><td>A function object that is callable with parameters of type <code>T1</code>, <code>T2</code>, ..., <code>TN</code> and returns a value convertible to <code>Res</code>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd><code>*this</code> </dd></dl> <p>This function object wrapper will target a copy of <em>__f</em>. If <em>__f</em> is <code>reference_wrapper<F></code>, then this function object will contain a reference to the function object <code>__f.get()</code>. If <em>__f</em> is a NULL function pointer or NULL pointer-to-member, <code>this</code> object will be empty.</p> <p>If <em>__f</em> is a non-NULL function pointer or an object of type <code>reference_wrapper<F></code>, this function will not throw. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00522">522</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="afc4ca535d5508c13e9112b39c8c064d4"></a> <h2 class="memtitle"><span class="permalink"><a href="#afc4ca535d5508c13e9112b39c8c064d4">◆ </a></span>operator=() <span class="overload">[5/5]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <div class="memtemplate"> template<typename _Functor > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a>& std::function< _Res(_ArgTypes...)>::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="a04172.html">reference_wrapper</a>< _Functor > </td> <td class="paramname"><em>__f</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00531">531</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="ad6e98060b15f59120e426a787febf1a5"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad6e98060b15f59120e426a787febf1a5">◆ </a></span>swap()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void std::function< _Res(_ArgTypes...)>::swap </td> <td>(</td> <td class="paramtype"><a class="el" href="a07136.html#aabc5bfd9d463ca6a06aa8198a1f12e14">function</a>< _Res(_ArgTypes...)> & </td> <td class="paramname"><em>__x</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Swap the targets of two function objects. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">__x</td><td>A function with identical call signature.</td></tr> </table> </dd> </dl> <p>Swap the targets of <code>this</code> function object and <em>__f</em>. This function will not throw an exception. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00546">546</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a35397202fc2bfb04958450d0a02836d3"></a> <h2 class="memtitle"><span class="permalink"><a href="#a35397202fc2bfb04958450d0a02836d3">◆ </a></span>target() <span class="overload">[1/2]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <div class="memtemplate"> template<typename _Functor > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">_Functor * std::function< _Res(_ArgTypes...)>::target </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Access the stored target function object. </p> <dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the stored target function object, if <code>typeid(_Functor)</code>.equals(target_type()); otherwise, a NULL pointer.</dd></dl> <p>This function does not throw exceptions. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00710">710</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a1ec2969ae6cf0413547dab469503c843"></a> <h2 class="memtitle"><span class="permalink"><a href="#a1ec2969ae6cf0413547dab469503c843">◆ </a></span>target() <span class="overload">[2/2]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <div class="memtemplate"> template<typename _Functor > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const _Functor * std::function< _Res(_ArgTypes...)>::target </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Access the stored target function object. </p> <dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the stored target function object, if <code>typeid(_Functor)</code>.equals(target_type()); otherwise, a NULL pointer.</dd></dl> <p>This function does not throw exceptions. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00721">721</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <a id="a68e477681a31511e5586cd30e7642a51"></a> <h2 class="memtitle"><span class="permalink"><a href="#a68e477681a31511e5586cd30e7642a51">◆ </a></span>target_type()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename _Res , typename... _ArgTypes> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a01668.html">type_info</a> & std::function< _Res(_ArgTypes...)>::target_type </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Determine the type of the target of this function object wrapper. </p> <dl class="section return"><dt>Returns</dt><dd>the type identifier of the target function object, or <code>typeid(void)</code> if <code>!</code>(bool)*this.</dd></dl> <p>This function will not throw an exception. </p> <p class="definition">Definition at line <a class="el" href="a00521_source.html#l00694">694</a> of file <a class="el" href="a00521_source.html">std_function.h</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="a00521_source.html">std_function.h</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="a01538.html">std</a></li><li class="navelem"><a class="el" href="a07136.html">function< _Res(_ArgTypes...)></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.15 </li> </ul> </div> </body> </html>