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 1. 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">
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>
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>
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"><</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">></span>
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>
35 <span class="special">~</span><span class="identifier">continuation</span><span class="special">();</span>
37 <span class="identifier">continuation</span><span class="special">(</span><span class="identifier">continuation</span> <span class="special">&&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
39 <span class="identifier">continuation</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">continuation</span> <span class="special">&&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
41 <span class="identifier">continuation</span><span class="special">(</span><span class="identifier">continuation</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>
42 <span class="identifier">continuation</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">continuation</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>
44 <span class="identifier">continuation</span> <span class="identifier">resume</span><span class="special">();</span>
46 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></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">&&</span> <span class="identifier">fn</span><span class="special">);</span>
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>
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>
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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
57 <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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
59 <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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
61 <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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
63 <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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
65 <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>
66 <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>
67 <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">continuation</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="special">{</span>
69 <span class="keyword">void</span> <span class="identifier">swap</span><span class="special">(</span><span class="identifier">continuation</span> <span class="special">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
70 <span class="special">};</span>
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>
81 <pre class="programlisting"><span class="identifier">continuation</span><span class="special">()</span> <span class="keyword">noexcept</span><span class="special">;</span>
83 <div class="variablelist">
84 <p class="title"><b></b></p>
85 <dl class="variablelist">
86 <dt><span class="term">Effects:</span></dt>
88 Creates a invalid continuation.
90 <dt><span class="term">Throws:</span></dt>
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>
105 <pre class="programlisting"><span class="special">~</span><span class="identifier">continuation</span><span class="special">();</span>
107 <div class="variablelist">
108 <p class="title"><b></b></p>
109 <dl class="variablelist">
110 <dt><span class="term">Effects:</span></dt>
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>.
115 <dt><span class="term">Throws:</span></dt>
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
131 <pre class="programlisting"><span class="identifier">continuation</span><span class="special">(</span><span class="identifier">continuation</span> <span class="special">&&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
133 <div class="variablelist">
134 <p class="title"><b></b></p>
135 <dl class="variablelist">
136 <dt><span class="term">Effects:</span></dt>
138 Moves underlying capture continuation to <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>.
140 <dt><span class="term">Throws:</span></dt>
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
156 <pre class="programlisting"><span class="identifier">continuation</span> <span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">continuation</span> <span class="special">&&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">noexcept</span><span class="special">;</span>
158 <div class="variablelist">
159 <p class="title"><b></b></p>
160 <dl class="variablelist">
161 <dt><span class="term">Effects:</span></dt>
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.
167 <dt><span class="term">Throws:</span></dt>
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>
183 <pre class="programlisting"><span class="identifier">continuation</span> <span class="identifier">resume</span><span class="special">();</span>
185 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></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">&&</span> <span class="identifier">fn</span><span class="special">);</span>
188 <div class="variablelist">
189 <p class="title"><b></b></p>
190 <dl class="variablelist">
191 <dt><span class="term">Effects:</span></dt>
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>).
197 <dt><span class="term">Returns:</span></dt>
199 The continuation representing the continuation that has been suspended.
201 <dt><span class="term">Note:</span></dt>
203 Function <code class="computeroutput"><span class="identifier">fn</span></code> needs to
204 return <code class="computeroutput"><span class="identifier">continuation</span></code>.
206 <dt><span class="term">Note:</span></dt>
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>.
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>
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>
226 <div class="variablelist">
227 <p class="title"><b></b></p>
228 <dl class="variablelist">
229 <dt><span class="term">Returns:</span></dt>
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.
234 <dt><span class="term">Throws:</span></dt>
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>
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>
251 <div class="variablelist">
252 <p class="title"><b></b></p>
253 <dl class="variablelist">
254 <dt><span class="term">Returns:</span></dt>
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.
259 <dt><span class="term">Throws:</span></dt>
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>
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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
277 <div class="variablelist">
278 <p class="title"><b></b></p>
279 <dl class="variablelist">
280 <dt><span class="term">Returns:</span></dt>
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>
287 <dt><span class="term">Throws:</span></dt>
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>
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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
305 <div class="variablelist">
306 <p class="title"><b></b></p>
307 <dl class="variablelist">
308 <dt><span class="term">Returns:</span></dt>
310 <code class="computeroutput">! (other == * this)</code>
312 <dt><span class="term">Throws:</span></dt>
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<</code>()</a>
328 <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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
330 <div class="variablelist">
331 <p class="title"><b></b></p>
332 <dl class="variablelist">
333 <dt><span class="term">Returns:</span></dt>
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
340 <dt><span class="term">Throws:</span></dt>
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></code>()</a>
356 <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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
358 <div class="variablelist">
359 <p class="title"><b></b></p>
360 <dl class="variablelist">
361 <dt><span class="term">Returns:</span></dt>
363 <code class="computeroutput"><span class="identifier">other</span> <span class="special"><</span>
364 <span class="special">*</span> <span class="keyword">this</span></code>
366 <dt><span class="term">Throws:</span></dt>
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<=</code>()</a>
382 <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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
384 <div class="variablelist">
385 <p class="title"><b></b></p>
386 <dl class="variablelist">
387 <dt><span class="term">Returns:</span></dt>
389 <code class="computeroutput"><span class="special">!</span> <span class="special">(</span><span class="identifier">other</span> <span class="special"><</span>
390 <span class="special">*</span> <span class="keyword">this</span><span class="special">)</span></code>
392 <dt><span class="term">Throws:</span></dt>
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>=</code>()</a>
408 <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">&</span> <span class="identifier">other</span><span class="special">)</span> <span class="keyword">const</span> <span class="keyword">noexcept</span><span class="special">;</span>
410 <div class="variablelist">
411 <p class="title"><b></b></p>
412 <dl class="variablelist">
413 <dt><span class="term">Returns:</span></dt>
415 <code class="computeroutput"><span class="special">!</span> <span class="special">(*</span>
416 <span class="keyword">this</span> <span class="special"><</span>
417 <span class="identifier">other</span><span class="special">)</span></code>
419 <dt><span class="term">Throws:</span></dt>
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<<()</code></a>
434 <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>
435 <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>
436 <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">continuation</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span><span class="special">);</span>
438 <div class="variablelist">
439 <p class="title"><b></b></p>
440 <dl class="variablelist">
441 <dt><span class="term">Effects:</span></dt>
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>.
446 <dt><span class="term">Returns:</span></dt>
448 <code class="computeroutput"><span class="identifier">os</span></code>
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>
457 <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">continuation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
459 <span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Fn</span><span class="special">></span>
460 <span class="identifier">continuation</span> <span class="identifier">callcc</span><span class="special">(</span><span class="identifier">Fn</span> <span class="special">&&</span> <span class="identifier">fn</span><span class="special">);</span>
462 <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>
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">&&</span> <span class="identifier">fn</span><span class="special">);</span>
465 <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>
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">&&</span> <span class="identifier">fn</span><span class="special">);</span>
468 <div class="variablelist">
469 <p class="title"><b></b></p>
470 <dl class="variablelist">
471 <dt><span class="term">Effects:</span></dt>
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.
480 <dt><span class="term">Returns:</span></dt>
482 The continuation representing the contexcontinuation that has been
485 <dt><span class="term">Note:</span></dt>
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>.
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 © 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>)
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>