1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Class fiber</title> 5<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../index.html" title="Chapter 1. Context"> 8<link rel="up" href="../ff.html" title="Context switching with fibers"> 9<link rel="prev" href="implementations__fcontext_t__ucontext_t_and_winfiber.html" title="Implementations: fcontext_t, ucontext_t and WinFiber"> 10<link rel="next" href="../cc.html" title="Context switching with call/cc"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="implementations__fcontext_t__ucontext_t_and_winfiber.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ff.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../cc.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h3 class="title"> 27<a name="context.ff.class__fiber_"></a><a class="link" href="class__fiber_.html" title="Class fiber">Class <code class="computeroutput"><span class="identifier">fiber</span></code></a> 28</h3></div></div></div> 29<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">context</span><span class="special">/</span><span class="identifier">fiber</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 30 31<span class="keyword">class</span> <span class="identifier">fiber</span> <span class="special">{</span> 32<span class="keyword">public</span><span class="special">:</span> 33 <span class="identifier">fiber</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span> 34 35 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 36 <span class="identifier">fiber</span><span class="special">(</span><span class="identifier">Fn</span> <span class="special">&&</span> <span class="identifier">fn</span><span class="special">);</span> 37 38 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">StackAlloc</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 39 <span class="identifier">fiber</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator_arg_t</span><span class="special">,</span> <span class="identifier">StackAlloc</span> <span class="special">&&</span> <span class="identifier">salloc</span><span class="special">,</span> <span class="identifier">Fn</span> <span class="special">&&</span> <span class="identifier">fn</span><span class="special">);</span> 40 41 <span class="special">~</span><span class="identifier">fiber</span><span class="special">();</span> 42 43 <span class="identifier">fiber</span><span class="special">(</span><span class="identifier">fiber</span> <span class="special">&&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 44 45 <span class="identifier">fiber</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">fiber</span> <span class="special">&&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 46 47 <span class="identifier">fiber</span><span class="special">(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span> <span class="special">=</span> <span class="keyword">delete</span><span class="special">;</span> 48 <span class="identifier">fiber</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span> <span class="special">=</span> <span class="keyword">delete</span><span class="special">;</span> 49 50 <span class="identifier">fiber</span> <span class="identifier">resume</span><span class="special">()</span> <span class="special">&&;</span> 51 52 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 53 <span class="identifier">fiber</span> <span class="identifier">resume_with</span><span class="special">(</span><span class="identifier">Fn</span> <span class="special">&&</span> <span class="identifier">fn</span><span class="special">)</span> <span class="special">&&;</span> 54 55 <span class="keyword">explicit</span> <span class="keyword">operator</span> <span class="keyword">bool</span><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 56 57 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 58 59 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 60 61 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 62 63 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 64 65 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">>(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 66 67 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><=(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 68 69 <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">>=(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 70 71 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">traitsT</span><span class="special">></span> 72 <span class="keyword">friend</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traitsT</span><span class="special">></span> <span class="special">&</span> 73 <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traitsT</span><span class="special">></span> <span class="special">&</span> <span class="identifier">os</span><span class="special">,</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="special">{</span> 74 75 <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">fiber</span> <span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 76<span class="special">};</span> 77</pre> 78<p> 79 </p> 80<h5> 81<a name="ff_constructor1_bridgehead"></a> 82 <span class="phrase"><a name="ff_constructor1"></a></span> 83 <a class="link" href="class__fiber_.html#ff_constructor1">Constructor</a> 84</h5> 85<p> 86 </p> 87<pre class="programlisting"><span class="identifier">fiber</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span> 88</pre> 89<div class="variablelist"> 90<p class="title"><b></b></p> 91<dl class="variablelist"> 92<dt><span class="term">Effects:</span></dt> 93<dd><p> 94 Creates a invalid fiber. 95 </p></dd> 96<dt><span class="term">Throws:</span></dt> 97<dd><p> 98 Nothing. 99 </p></dd> 100</dl> 101</div> 102<p> 103 </p> 104<h5> 105<a name="ff_constructor2_bridgehead"></a> 106 <span class="phrase"><a name="ff_constructor2"></a></span> 107 <a class="link" href="class__fiber_.html#ff_constructor2">Constructor</a> 108</h5> 109<p> 110 </p> 111<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 112<span class="identifier">fiber</span><span class="special">(</span><span class="identifier">Fn</span> <span class="special">&&</span> <span class="identifier">fn</span><span class="special">);</span> 113 114<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">StackAlloc</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 115<span class="identifier">fiber</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator_arg_t</span><span class="special">,</span> <span class="identifier">StackAlloc</span> <span class="special">&&</span> <span class="identifier">salloc</span><span class="special">,</span> <span class="identifier">Fn</span> <span class="special">&&</span> <span class="identifier">fn</span><span class="special">);</span> 116</pre> 117<div class="variablelist"> 118<p class="title"><b></b></p> 119<dl class="variablelist"> 120<dt><span class="term">Effects:</span></dt> 121<dd><p> 122 Creates a new fiber and prepares the context to execute <code class="computeroutput"><span class="identifier">fn</span></code>. <code class="computeroutput"><span class="identifier">fixedsize_stack</span></code> 123 is used as default stack allocator (stack size == fixedsize_stack::traits::default_size()). 124 The constructor with argument type <code class="computeroutput"><span class="identifier">preallocated</span></code>, 125 is used to create a user defined data <a class="link" href="../ff.html#ff_prealloc">(for 126 instance additional control structures)</a> on top of the stack. 127 </p></dd> 128</dl> 129</div> 130<p> 131 </p> 132<h5> 133<a name="ff_destructor%20destructor_bridgehead"></a> 134 <span class="phrase"><a name="ff_destructor%20destructor"></a></span> 135 <a class="link" href="class__fiber_.html#ff_destructor%20destructor">Destructor</a> 136</h5> 137<p> 138 </p> 139<pre class="programlisting"><span class="special">~</span><span class="identifier">fiber</span><span class="special">();</span> 140</pre> 141<div class="variablelist"> 142<p class="title"><b></b></p> 143<dl class="variablelist"> 144<dt><span class="term">Effects:</span></dt> 145<dd><p> 146 Destructs the associated stack if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> is a valid fiber, e.g. <span class="emphasis"><em>fiber::operator 147 bool()</em></span> returns <code class="computeroutput"><span class="keyword">true</span></code>. 148 </p></dd> 149<dt><span class="term">Throws:</span></dt> 150<dd><p> 151 Nothing. 152 </p></dd> 153</dl> 154</div> 155<p> 156 </p> 157<h5> 158<a name="ff_move%20constructor_bridgehead"></a> 159 <span class="phrase"><a name="ff_move%20constructor"></a></span> 160 <a class="link" href="class__fiber_.html#ff_move%20constructor">Move 161 constructor</a> 162</h5> 163<p> 164 </p> 165<pre class="programlisting"><span class="identifier">fiber</span><span class="special">(</span><span class="identifier">fiber</span> <span class="special">&&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 166</pre> 167<div class="variablelist"> 168<p class="title"><b></b></p> 169<dl class="variablelist"> 170<dt><span class="term">Effects:</span></dt> 171<dd><p> 172 Moves underlying capture fiber to <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 173 </p></dd> 174<dt><span class="term">Throws:</span></dt> 175<dd><p> 176 Nothing. 177 </p></dd> 178</dl> 179</div> 180<p> 181 </p> 182<h5> 183<a name="ff_move%20assignment_bridgehead"></a> 184 <span class="phrase"><a name="ff_move%20assignment"></a></span> 185 <a class="link" href="class__fiber_.html#ff_move%20assignment">Move assignment 186 operator</a> 187</h5> 188<p> 189 </p> 190<pre class="programlisting"><span class="identifier">fiber</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">fiber</span> <span class="special">&&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span> 191</pre> 192<div class="variablelist"> 193<p class="title"><b></b></p> 194<dl class="variablelist"> 195<dt><span class="term">Effects:</span></dt> 196<dd><p> 197 Moves the state of <code class="computeroutput"><span class="identifier">other</span></code> 198 to <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> 199 using move semantics. 200 </p></dd> 201<dt><span class="term">Throws:</span></dt> 202<dd><p> 203 Nothing. 204 </p></dd> 205</dl> 206</div> 207<p> 208 </p> 209<h5> 210<a name="ff_operator_call_bridgehead"></a> 211 <span class="phrase"><a name="ff_operator_call"></a></span> 212 <a class="link" href="class__fiber_.html#ff_operator_call">Member function 213 <code class="computeroutput">operator()</code>()</a> 214</h5> 215<p> 216 </p> 217<pre class="programlisting"><span class="identifier">fiber</span> <span class="identifier">resume</span><span class="special">()</span> <span class="special">&&;</span> 218 219<span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span> 220<span class="identifier">fiber</span> <span class="identifier">resume_with</span><span class="special">(</span><span class="identifier">Fn</span> <span class="special">&&</span> <span class="identifier">fn</span><span class="special">)</span> <span class="special">&&;</span> 221</pre> 222<div class="variablelist"> 223<p class="title"><b></b></p> 224<dl class="variablelist"> 225<dt><span class="term">Effects:</span></dt> 226<dd><p> 227 Captures current fiber and resumes <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. The function <code class="computeroutput"><span class="identifier">resume_with</span></code>, 228 is used to execute function <code class="computeroutput"><span class="identifier">fn</span></code> 229 in the execution context of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> (e.g. the stack frame of <code class="computeroutput"><span class="identifier">fn</span></code> is allocated on stack of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>). 230 </p></dd> 231<dt><span class="term">Returns:</span></dt> 232<dd><p> 233 The fiber representing the fiber that has been suspended. 234 </p></dd> 235<dt><span class="term">Note:</span></dt> 236<dd><p> 237 Because <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> 238 gets invalidated, <code class="computeroutput"><span class="identifier">resume</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">resume_with</span><span class="special">()</span></code> are rvalue-ref qualified and bind 239 only to rvalues. 240 </p></dd> 241<dt><span class="term">Note:</span></dt> 242<dd><p> 243 Function <code class="computeroutput"><span class="identifier">fn</span></code> needs to 244 return <code class="computeroutput"><span class="identifier">fiber</span></code>. 245 </p></dd> 246<dt><span class="term">Note:</span></dt> 247<dd><p> 248 The returned fiber indicates if the suspended fiber has terminated 249 (return from context-function) via <code class="computeroutput"><span class="keyword">bool</span> 250 <span class="keyword">operator</span><span class="special">()</span></code>. 251 </p></dd> 252</dl> 253</div> 254<p> 255 </p> 256<h5> 257<a name="ff_operator_bool_bridgehead"></a> 258 <span class="phrase"><a name="ff_operator_bool"></a></span> 259 <a class="link" href="class__fiber_.html#ff_operator_bool">Member function 260 <code class="computeroutput">operator bool</code>()</a> 261</h5> 262<p> 263 </p> 264<pre class="programlisting"><span class="keyword">explicit</span> <span class="keyword">operator</span> <span class="keyword">bool</span><span class="special">()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 265</pre> 266<div class="variablelist"> 267<p class="title"><b></b></p> 268<dl class="variablelist"> 269<dt><span class="term">Returns:</span></dt> 270<dd><p> 271 <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> 272 points to a captured fiber. 273 </p></dd> 274<dt><span class="term">Throws:</span></dt> 275<dd><p> 276 Nothing. 277 </p></dd> 278</dl> 279</div> 280<p> 281 </p> 282<h5> 283<a name="ff_operator_not_bridgehead"></a> 284 <span class="phrase"><a name="ff_operator_not"></a></span> 285 <a class="link" href="class__fiber_.html#ff_operator_not">Member function <code class="computeroutput">operator!</code>()</a> 286</h5> 287<p> 288 </p> 289<pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!()</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 290</pre> 291<div class="variablelist"> 292<p class="title"><b></b></p> 293<dl class="variablelist"> 294<dt><span class="term">Returns:</span></dt> 295<dd><p> 296 <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> 297 does not point to a captured fiber. 298 </p></dd> 299<dt><span class="term">Throws:</span></dt> 300<dd><p> 301 Nothing. 302 </p></dd> 303</dl> 304</div> 305<p> 306 </p> 307<h5> 308<a name="ff_operator_equal_bridgehead"></a> 309 <span class="phrase"><a name="ff_operator_equal"></a></span> 310 <a class="link" href="class__fiber_.html#ff_operator_equal">Member function 311 <code class="computeroutput">operator==</code>()</a> 312</h5> 313<p> 314 </p> 315<pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 316</pre> 317<div class="variablelist"> 318<p class="title"><b></b></p> 319<dl class="variablelist"> 320<dt><span class="term">Returns:</span></dt> 321<dd><p> 322 <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> 323 and <code class="computeroutput"><span class="identifier">other</span></code> represent 324 the same fiber, <code class="computeroutput"><span class="keyword">false</span></code> 325 otherwise. 326 </p></dd> 327<dt><span class="term">Throws:</span></dt> 328<dd><p> 329 Nothing. 330 </p></dd> 331</dl> 332</div> 333<p> 334 </p> 335<h5> 336<a name="ff_operator_notequal_bridgehead"></a> 337 <span class="phrase"><a name="ff_operator_notequal"></a></span> 338 <a class="link" href="class__fiber_.html#ff_operator_notequal">Member 339 function <code class="computeroutput">operator!=</code>()</a> 340</h5> 341<p> 342 </p> 343<pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 344</pre> 345<div class="variablelist"> 346<p class="title"><b></b></p> 347<dl class="variablelist"> 348<dt><span class="term">Returns:</span></dt> 349<dd><p> 350 <code class="computeroutput">! (other == * this)</code> 351 </p></dd> 352<dt><span class="term">Throws:</span></dt> 353<dd><p> 354 Nothing. 355 </p></dd> 356</dl> 357</div> 358<p> 359 </p> 360<h5> 361<a name="ff_operator_less_bridgehead"></a> 362 <span class="phrase"><a name="ff_operator_less"></a></span> 363 <a class="link" href="class__fiber_.html#ff_operator_less">Member function 364 <code class="computeroutput">operator<</code>()</a> 365</h5> 366<p> 367 </p> 368<pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 369</pre> 370<div class="variablelist"> 371<p class="title"><b></b></p> 372<dl class="variablelist"> 373<dt><span class="term">Returns:</span></dt> 374<dd><p> 375 <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span> <span class="special">!=</span> <span class="identifier">other</span></code> 376 is true and the implementation-defined total order of <code class="computeroutput"><span class="identifier">fiber</span></code> values places <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> 377 before <code class="computeroutput"><span class="identifier">other</span></code>, false 378 otherwise. 379 </p></dd> 380<dt><span class="term">Throws:</span></dt> 381<dd><p> 382 Nothing. 383 </p></dd> 384</dl> 385</div> 386<p> 387 </p> 388<h5> 389<a name="ff_operator_greater_bridgehead"></a> 390 <span class="phrase"><a name="ff_operator_greater"></a></span> 391 <a class="link" href="class__fiber_.html#ff_operator_greater">Member 392 function <code class="computeroutput">operator></code>()</a> 393</h5> 394<p> 395 </p> 396<pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">>(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 397</pre> 398<div class="variablelist"> 399<p class="title"><b></b></p> 400<dl class="variablelist"> 401<dt><span class="term">Returns:</span></dt> 402<dd><p> 403 <code class="computeroutput"><span class="identifier">other</span> <span class="special"><</span> 404 <span class="special">*</span> <span class="keyword">this</span></code> 405 </p></dd> 406<dt><span class="term">Throws:</span></dt> 407<dd><p> 408 Nothing. 409 </p></dd> 410</dl> 411</div> 412<p> 413 </p> 414<h5> 415<a name="ff_operator_lesseq_bridgehead"></a> 416 <span class="phrase"><a name="ff_operator_lesseq"></a></span> 417 <a class="link" href="class__fiber_.html#ff_operator_lesseq">Member function 418 <code class="computeroutput">operator<=</code>()</a> 419</h5> 420<p> 421 </p> 422<pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special"><=(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 423</pre> 424<div class="variablelist"> 425<p class="title"><b></b></p> 426<dl class="variablelist"> 427<dt><span class="term">Returns:</span></dt> 428<dd><p> 429 <code class="computeroutput"><span class="special">!</span> <span class="special">(</span><span class="identifier">other</span> <span class="special"><</span> 430 <span class="special">*</span> <span class="keyword">this</span><span class="special">)</span></code> 431 </p></dd> 432<dt><span class="term">Throws:</span></dt> 433<dd><p> 434 Nothing. 435 </p></dd> 436</dl> 437</div> 438<p> 439 </p> 440<h5> 441<a name="ff_operator_greatereq_bridgehead"></a> 442 <span class="phrase"><a name="ff_operator_greatereq"></a></span> 443 <a class="link" href="class__fiber_.html#ff_operator_greatereq">Member 444 function <code class="computeroutput">operator>=</code>()</a> 445</h5> 446<p> 447 </p> 448<pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">>=(</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span> 449</pre> 450<div class="variablelist"> 451<p class="title"><b></b></p> 452<dl class="variablelist"> 453<dt><span class="term">Returns:</span></dt> 454<dd><p> 455 <code class="computeroutput"><span class="special">!</span> <span class="special">(*</span> 456 <span class="keyword">this</span> <span class="special"><</span> 457 <span class="identifier">other</span><span class="special">)</span></code> 458 </p></dd> 459<dt><span class="term">Throws:</span></dt> 460<dd><p> 461 Nothing. 462 </p></dd> 463</dl> 464</div> 465<p> 466 </p> 467<h5> 468<a name="ff__bridgehead"></a> 469 <span class="phrase"><a name="ff_"></a></span> 470 <a class="link" href="class__fiber_.html#ff_">Non-member function <code class="computeroutput">operator<<()</code></a> 471</h5> 472<p> 473 </p> 474<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">charT</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">traitsT</span><span class="special">></span> 475<span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traitsT</span><span class="special">></span> <span class="special">&</span> 476<span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special"><</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traitsT</span><span class="special">></span> <span class="special">&</span> <span class="identifier">os</span><span class="special">,</span><span class="identifier">fiber</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">);</span> 477</pre> 478<div class="variablelist"> 479<p class="title"><b></b></p> 480<dl class="variablelist"> 481<dt><span class="term">Effects:</span></dt> 482<dd><p> 483 Writes the representation of <code class="computeroutput"><span class="identifier">other</span></code> 484 to stream <code class="computeroutput"><span class="identifier">os</span></code>. 485 </p></dd> 486<dt><span class="term">Returns:</span></dt> 487<dd><p> 488 <code class="computeroutput"><span class="identifier">os</span></code> 489 </p></dd> 490</dl> 491</div> 492</div> 493<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 494<td align="left"></td> 495<td align="right"><div class="copyright-footer">Copyright © 2014 Oliver Kowalke<p> 496 Distributed under the Boost Software License, Version 1.0. (See accompanying 497 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 498 </p> 499</div></td> 500</tr></table> 501<hr> 502<div class="spirit-nav"> 503<a accesskey="p" href="implementations__fcontext_t__ucontext_t_and_winfiber.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ff.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../cc.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 504</div> 505</body> 506</html> 507