Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / context / doc / html / context / cc / class__continuation_.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Class continuation</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&#160;1.&#160;Context">
8 <link rel="up" href="../cc.html" title="Context switching with call/cc">
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="../stack.html" title="Stack allocation">
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="../cc.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="../stack.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.cc.class__continuation_"></a><a class="link" href="class__continuation_.html" title="Class continuation">Class <code class="computeroutput"><span class="identifier">continuation</span></code></a>
28 </h3></div></div></div>
29 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">context</span><span class="special">/</span><span class="identifier">continuation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
30
31 <span class="keyword">class</span> <span class="identifier">continuation</span> <span class="special">{</span>
32 <span class="keyword">public</span><span class="special">:</span>
33     <span class="identifier">continuation</span><span class="special">()</span> <span class="keyword">noexcept</span> <span class="special">=</span> <span class="keyword">default</span><span class="special">;</span>
34
35     <span class="special">~</span><span class="identifier">continuation</span><span class="special">();</span>
36
37     <span class="identifier">continuation</span><span class="special">(</span><span class="identifier">continuation</span> <span class="special">&amp;&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
38
39     <span class="identifier">continuation</span> <span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">continuation</span> <span class="special">&amp;&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
40
41     <span class="identifier">continuation</span><span class="special">(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</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>
42     <span class="identifier">continuation</span> <span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</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>
43
44     <span class="identifier">continuation</span> <span class="identifier">resume</span><span class="special">();</span>
45
46     <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">&gt;</span>
47     <span class="identifier">continuation</span> <span class="identifier">resume_with</span><span class="special">(</span><span class="identifier">Fn</span> <span class="special">&amp;&amp;</span> <span class="identifier">fn</span><span class="special">);</span>
48
49     <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>
50
51     <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>
52
53     <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
54
55     <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</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">&lt;(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</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">&gt;(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</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">&lt;=(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</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">&gt;=(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</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">template</span><span class="special">&lt;</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">&gt;</span>
66     <span class="keyword">friend</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traitsT</span><span class="special">&gt;</span> <span class="special">&amp;</span>
67     <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traitsT</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="special">{</span>
68
69     <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">continuation</span> <span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
70 <span class="special">};</span>
71 </pre>
72 <p>
73         </p>
74 <h5>
75 <a name="cc_constructor_bridgehead"></a>
76   <span class="phrase"><a name="cc_constructor"></a></span>
77   <a class="link" href="class__continuation_.html#cc_constructor">Constructor</a>
78 </h5>
79 <p>
80       </p>
81 <pre class="programlisting"><span class="identifier">continuation</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span>
82 </pre>
83 <div class="variablelist">
84 <p class="title"><b></b></p>
85 <dl class="variablelist">
86 <dt><span class="term">Effects:</span></dt>
87 <dd><p>
88               Creates a invalid continuation.
89             </p></dd>
90 <dt><span class="term">Throws:</span></dt>
91 <dd><p>
92               Nothing.
93             </p></dd>
94 </dl>
95 </div>
96 <p>
97         </p>
98 <h5>
99 <a name="cc_destructor%20destructor_bridgehead"></a>
100   <span class="phrase"><a name="cc_destructor%20destructor"></a></span>
101   <a class="link" href="class__continuation_.html#cc_destructor%20destructor">Destructor</a>
102 </h5>
103 <p>
104       </p>
105 <pre class="programlisting"><span class="special">~</span><span class="identifier">continuation</span><span class="special">();</span>
106 </pre>
107 <div class="variablelist">
108 <p class="title"><b></b></p>
109 <dl class="variablelist">
110 <dt><span class="term">Effects:</span></dt>
111 <dd><p>
112               Destructs the associated stack if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> is a valid continuation, e.g.
113               <span class="emphasis"><em>continuation::operator bool()</em></span> returns <code class="computeroutput"><span class="keyword">true</span></code>.
114             </p></dd>
115 <dt><span class="term">Throws:</span></dt>
116 <dd><p>
117               Nothing.
118             </p></dd>
119 </dl>
120 </div>
121 <p>
122         </p>
123 <h5>
124 <a name="cc_move%20constructor_bridgehead"></a>
125   <span class="phrase"><a name="cc_move%20constructor"></a></span>
126   <a class="link" href="class__continuation_.html#cc_move%20constructor">Move
127         constructor</a>
128 </h5>
129 <p>
130       </p>
131 <pre class="programlisting"><span class="identifier">continuation</span><span class="special">(</span><span class="identifier">continuation</span> <span class="special">&amp;&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
132 </pre>
133 <div class="variablelist">
134 <p class="title"><b></b></p>
135 <dl class="variablelist">
136 <dt><span class="term">Effects:</span></dt>
137 <dd><p>
138               Moves underlying capture continuation to <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
139             </p></dd>
140 <dt><span class="term">Throws:</span></dt>
141 <dd><p>
142               Nothing.
143             </p></dd>
144 </dl>
145 </div>
146 <p>
147         </p>
148 <h5>
149 <a name="cc_move%20assignment_bridgehead"></a>
150   <span class="phrase"><a name="cc_move%20assignment"></a></span>
151   <a class="link" href="class__continuation_.html#cc_move%20assignment">Move assignment
152         operator</a>
153 </h5>
154 <p>
155       </p>
156 <pre class="programlisting"><span class="identifier">continuation</span> <span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">continuation</span> <span class="special">&amp;&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
157 </pre>
158 <div class="variablelist">
159 <p class="title"><b></b></p>
160 <dl class="variablelist">
161 <dt><span class="term">Effects:</span></dt>
162 <dd><p>
163               Moves the state of <code class="computeroutput"><span class="identifier">other</span></code>
164               to <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
165               using move semantics.
166             </p></dd>
167 <dt><span class="term">Throws:</span></dt>
168 <dd><p>
169               Nothing.
170             </p></dd>
171 </dl>
172 </div>
173 <p>
174         </p>
175 <h5>
176 <a name="cc_operator_call_bridgehead"></a>
177   <span class="phrase"><a name="cc_operator_call"></a></span>
178   <a class="link" href="class__continuation_.html#cc_operator_call">Member function
179         <code class="computeroutput">operator()</code>()</a>
180 </h5>
181 <p>
182       </p>
183 <pre class="programlisting"><span class="identifier">continuation</span> <span class="identifier">resume</span><span class="special">();</span>
184
185 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">&gt;</span>
186 <span class="identifier">continuation</span> <span class="identifier">resume_with</span><span class="special">(</span><span class="identifier">Fn</span> <span class="special">&amp;&amp;</span> <span class="identifier">fn</span><span class="special">);</span>
187 </pre>
188 <div class="variablelist">
189 <p class="title"><b></b></p>
190 <dl class="variablelist">
191 <dt><span class="term">Effects:</span></dt>
192 <dd><p>
193               Captures current continuation 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>,
194               is used to execute function <code class="computeroutput"><span class="identifier">fn</span></code>
195               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>).
196             </p></dd>
197 <dt><span class="term">Returns:</span></dt>
198 <dd><p>
199               The continuation representing the continuation that has been suspended.
200             </p></dd>
201 <dt><span class="term">Note:</span></dt>
202 <dd><p>
203               Function <code class="computeroutput"><span class="identifier">fn</span></code> needs to
204               return <code class="computeroutput"><span class="identifier">continuation</span></code>.
205             </p></dd>
206 <dt><span class="term">Note:</span></dt>
207 <dd><p>
208               The returned continuation indicates if the suspended continuation has
209               terminated (return from context-function) via <code class="computeroutput"><span class="keyword">bool</span>
210               <span class="keyword">operator</span><span class="special">()</span></code>.
211             </p></dd>
212 </dl>
213 </div>
214 <p>
215         </p>
216 <h5>
217 <a name="cc_operator_bool_bridgehead"></a>
218   <span class="phrase"><a name="cc_operator_bool"></a></span>
219   <a class="link" href="class__continuation_.html#cc_operator_bool">Member function
220         <code class="computeroutput">operator bool</code>()</a>
221 </h5>
222 <p>
223       </p>
224 <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>
225 </pre>
226 <div class="variablelist">
227 <p class="title"><b></b></p>
228 <dl class="variablelist">
229 <dt><span class="term">Returns:</span></dt>
230 <dd><p>
231               <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
232               points to a captured continuation.
233             </p></dd>
234 <dt><span class="term">Throws:</span></dt>
235 <dd><p>
236               Nothing.
237             </p></dd>
238 </dl>
239 </div>
240 <p>
241         </p>
242 <h5>
243 <a name="cc_operator_not_bridgehead"></a>
244   <span class="phrase"><a name="cc_operator_not"></a></span>
245   <a class="link" href="class__continuation_.html#cc_operator_not">Member function <code class="computeroutput">operator!</code>()</a>
246 </h5>
247 <p>
248       </p>
249 <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>
250 </pre>
251 <div class="variablelist">
252 <p class="title"><b></b></p>
253 <dl class="variablelist">
254 <dt><span class="term">Returns:</span></dt>
255 <dd><p>
256               <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
257               does not point to a captured continuation.
258             </p></dd>
259 <dt><span class="term">Throws:</span></dt>
260 <dd><p>
261               Nothing.
262             </p></dd>
263 </dl>
264 </div>
265 <p>
266         </p>
267 <h5>
268 <a name="cc_operator_equal_bridgehead"></a>
269   <span class="phrase"><a name="cc_operator_equal"></a></span>
270   <a class="link" href="class__continuation_.html#cc_operator_equal">Member function
271         <code class="computeroutput">operator==</code>()</a>
272 </h5>
273 <p>
274       </p>
275 <pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
276 </pre>
277 <div class="variablelist">
278 <p class="title"><b></b></p>
279 <dl class="variablelist">
280 <dt><span class="term">Returns:</span></dt>
281 <dd><p>
282               <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
283               and <code class="computeroutput"><span class="identifier">other</span></code> represent
284               the same continuation, <code class="computeroutput"><span class="keyword">false</span></code>
285               otherwise.
286             </p></dd>
287 <dt><span class="term">Throws:</span></dt>
288 <dd><p>
289               Nothing.
290             </p></dd>
291 </dl>
292 </div>
293 <p>
294         </p>
295 <h5>
296 <a name="cc_operator_notequal_bridgehead"></a>
297   <span class="phrase"><a name="cc_operator_notequal"></a></span>
298   <a class="link" href="class__continuation_.html#cc_operator_notequal">Member
299         function <code class="computeroutput">operator!=</code>()</a>
300 </h5>
301 <p>
302       </p>
303 <pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
304 </pre>
305 <div class="variablelist">
306 <p class="title"><b></b></p>
307 <dl class="variablelist">
308 <dt><span class="term">Returns:</span></dt>
309 <dd><p>
310               <code class="computeroutput">! (other == * this)</code>
311             </p></dd>
312 <dt><span class="term">Throws:</span></dt>
313 <dd><p>
314               Nothing.
315             </p></dd>
316 </dl>
317 </div>
318 <p>
319         </p>
320 <h5>
321 <a name="cc_operator_less_bridgehead"></a>
322   <span class="phrase"><a name="cc_operator_less"></a></span>
323   <a class="link" href="class__continuation_.html#cc_operator_less">Member function
324         <code class="computeroutput">operator&lt;</code>()</a>
325 </h5>
326 <p>
327       </p>
328 <pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
329 </pre>
330 <div class="variablelist">
331 <p class="title"><b></b></p>
332 <dl class="variablelist">
333 <dt><span class="term">Returns:</span></dt>
334 <dd><p>
335               <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>
336               is true and the implementation-defined total order of <code class="computeroutput"><span class="identifier">continuation</span></code> values places <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>
337               before <code class="computeroutput"><span class="identifier">other</span></code>, false
338               otherwise.
339             </p></dd>
340 <dt><span class="term">Throws:</span></dt>
341 <dd><p>
342               Nothing.
343             </p></dd>
344 </dl>
345 </div>
346 <p>
347         </p>
348 <h5>
349 <a name="cc_operator_greater_bridgehead"></a>
350   <span class="phrase"><a name="cc_operator_greater"></a></span>
351   <a class="link" href="class__continuation_.html#cc_operator_greater">Member
352         function <code class="computeroutput">operator&gt;</code>()</a>
353 </h5>
354 <p>
355       </p>
356 <pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
357 </pre>
358 <div class="variablelist">
359 <p class="title"><b></b></p>
360 <dl class="variablelist">
361 <dt><span class="term">Returns:</span></dt>
362 <dd><p>
363               <code class="computeroutput"><span class="identifier">other</span> <span class="special">&lt;</span>
364               <span class="special">*</span> <span class="keyword">this</span></code>
365             </p></dd>
366 <dt><span class="term">Throws:</span></dt>
367 <dd><p>
368               Nothing.
369             </p></dd>
370 </dl>
371 </div>
372 <p>
373         </p>
374 <h5>
375 <a name="cc_operator_lesseq_bridgehead"></a>
376   <span class="phrase"><a name="cc_operator_lesseq"></a></span>
377   <a class="link" href="class__continuation_.html#cc_operator_lesseq">Member function
378         <code class="computeroutput">operator&lt;=</code>()</a>
379 </h5>
380 <p>
381       </p>
382 <pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
383 </pre>
384 <div class="variablelist">
385 <p class="title"><b></b></p>
386 <dl class="variablelist">
387 <dt><span class="term">Returns:</span></dt>
388 <dd><p>
389               <code class="computeroutput"><span class="special">!</span> <span class="special">(</span><span class="identifier">other</span> <span class="special">&lt;</span>
390               <span class="special">*</span> <span class="keyword">this</span><span class="special">)</span></code>
391             </p></dd>
392 <dt><span class="term">Throws:</span></dt>
393 <dd><p>
394               Nothing.
395             </p></dd>
396 </dl>
397 </div>
398 <p>
399         </p>
400 <h5>
401 <a name="cc_operator_greatereq_bridgehead"></a>
402   <span class="phrase"><a name="cc_operator_greatereq"></a></span>
403   <a class="link" href="class__continuation_.html#cc_operator_greatereq">Member
404         function <code class="computeroutput">operator&gt;=</code>()</a>
405 </h5>
406 <p>
407       </p>
408 <pre class="programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
409 </pre>
410 <div class="variablelist">
411 <p class="title"><b></b></p>
412 <dl class="variablelist">
413 <dt><span class="term">Returns:</span></dt>
414 <dd><p>
415               <code class="computeroutput"><span class="special">!</span> <span class="special">(*</span>
416               <span class="keyword">this</span> <span class="special">&lt;</span>
417               <span class="identifier">other</span><span class="special">)</span></code>
418             </p></dd>
419 <dt><span class="term">Throws:</span></dt>
420 <dd><p>
421               Nothing.
422             </p></dd>
423 </dl>
424 </div>
425 <p>
426         </p>
427 <h5>
428 <a name="cc__bridgehead"></a>
429   <span class="phrase"><a name="cc_"></a></span>
430   <a class="link" href="class__continuation_.html#cc_">Non-member function <code class="computeroutput">operator&lt;&lt;()</code></a>
431 </h5>
432 <p>
433       </p>
434 <pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
435 <span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traitsT</span><span class="special">&gt;</span> <span class="special">&amp;</span>
436 <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span><span class="special">&lt;</span><span class="identifier">charT</span><span class="special">,</span><span class="identifier">traitsT</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">os</span><span class="special">,</span><span class="identifier">continuation</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">other</span><span class="special">);</span>
437 </pre>
438 <div class="variablelist">
439 <p class="title"><b></b></p>
440 <dl class="variablelist">
441 <dt><span class="term">Effects:</span></dt>
442 <dd><p>
443               Writes the representation of <code class="computeroutput"><span class="identifier">other</span></code>
444               to stream <code class="computeroutput"><span class="identifier">os</span></code>.
445             </p></dd>
446 <dt><span class="term">Returns:</span></dt>
447 <dd><p>
448               <code class="computeroutput"><span class="identifier">os</span></code>
449             </p></dd>
450 </dl>
451 </div>
452 <h5>
453 <a name="context.cc.class__continuation_.h0"></a>
454         <span class="phrase"><a name="context.cc.class__continuation_.call_with_current_continuation"></a></span><a class="link" href="class__continuation_.html#context.cc.class__continuation_.call_with_current_continuation">Call
455         with current continuation</a>
456       </h5>
457 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">context</span><span class="special">/</span><span class="identifier">continuation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
458
459 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">&gt;</span>
460 <span class="identifier">continuation</span> <span class="identifier">callcc</span><span class="special">(</span><span class="identifier">Fn</span> <span class="special">&amp;&amp;</span> <span class="identifier">fn</span><span class="special">);</span>
461
462 <span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
463 <span class="identifier">continuation</span> <span class="identifier">callcc</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="identifier">salloc</span><span class="special">,</span><span class="identifier">Fn</span> <span class="special">&amp;&amp;</span> <span class="identifier">fn</span><span class="special">);</span>
464
465 <span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
466 <span class="identifier">continuation</span> <span class="identifier">callcc</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">preallocated</span> <span class="identifier">palloc</span><span class="special">,</span><span class="identifier">StackAlloc</span> <span class="identifier">salloc</span><span class="special">,</span><span class="identifier">Fn</span> <span class="special">&amp;&amp;</span> <span class="identifier">fn</span><span class="special">);</span>
467 </pre>
468 <div class="variablelist">
469 <p class="title"><b></b></p>
470 <dl class="variablelist">
471 <dt><span class="term">Effects:</span></dt>
472 <dd><p>
473               Captures current continuation and creates a new continuation prepared
474               to execute <code class="computeroutput"><span class="identifier">fn</span></code>. <code class="computeroutput"><span class="identifier">fixedsize_stack</span></code> is used as default
475               stack allocator (stack size == fixedsize_stack::traits::default_size()).
476               The function with argument type <code class="computeroutput"><span class="identifier">preallocated</span></code>,
477               is used to create a user defined data <a class="link" href="../cc.html#cc_prealloc">(for
478               instance additional control structures)</a> on top of the stack.
479             </p></dd>
480 <dt><span class="term">Returns:</span></dt>
481 <dd><p>
482               The continuation representing the contexcontinuation that has been
483               suspended.
484             </p></dd>
485 <dt><span class="term">Note:</span></dt>
486 <dd><p>
487               The returned continuation indicates if the suspended continuation has
488               terminated (return from context-function) via <code class="computeroutput"><span class="keyword">bool</span>
489               <span class="keyword">operator</span><span class="special">()</span></code>.
490             </p></dd>
491 </dl>
492 </div>
493 </div>
494 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
495 <td align="left"></td>
496 <td align="right"><div class="copyright-footer">Copyright &#169; 2014 Oliver Kowalke<p>
497         Distributed under the Boost Software License, Version 1.0. (See accompanying
498         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>)
499       </p>
500 </div></td>
501 </tr></table>
502 <hr>
503 <div class="spirit-nav">
504 <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="../cc.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="../stack.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
505 </div>
506 </body>
507 </html>