|
|
|
|
@@ -6,7 +6,7 @@
|
|
|
|
|
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
|
|
|
|
<link rel="home" href="../../index.html" title="Chapter 1. Phoenix 3.2.0">
|
|
|
|
|
<link rel="up" href="../lazy_list.html" title="Lazy List">
|
|
|
|
|
<link rel="prev" href="tutorial_with_examples/list_generation.html" title="List Generation">
|
|
|
|
|
<link rel="prev" href="exceptions.html" title="Exceptions">
|
|
|
|
|
<link rel="next" href="testing.html" title="Testing">
|
|
|
|
|
</head>
|
|
|
|
|
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
|
|
|
|
@@ -20,7 +20,7 @@
|
|
|
|
|
</tr></table>
|
|
|
|
|
<hr>
|
|
|
|
|
<div class="spirit-nav">
|
|
|
|
|
<a accesskey="p" href="tutorial_with_examples/list_generation.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lazy_list.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="testing.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
|
|
|
|
<a accesskey="p" href="exceptions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lazy_list.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="testing.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="section">
|
|
|
|
|
<div class="titlepage"><div><div><h3 class="title">
|
|
|
|
|
@@ -197,69 +197,68 @@
|
|
|
|
|
to the list and return the function which will add the next element. That
|
|
|
|
|
only gets called when it is needed.
|
|
|
|
|
</p>
|
|
|
|
|
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
|
|
|
|
|
<span class="keyword">struct</span> <span class="identifier">EFH</span>
|
|
|
|
|
<span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">TT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_const</span><span class="special"><</span><span class="identifier">TT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">mutable</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">EFH</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">xx</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">x</span><span class="special">(</span><span class="identifier">xx</span><span class="special">)</span> <span class="special">{}</span>
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sig</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">result</span><span class="special">;</span>
|
|
|
|
|
<pre class="programlisting"> <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
|
|
|
|
|
<span class="keyword">struct</span> <span class="identifier">EFH</span>
|
|
|
|
|
<span class="special">{</span>
|
|
|
|
|
<span class="keyword">mutable</span> <span class="identifier">T</span> <span class="identifier">x</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">EFH</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">xx</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">x</span><span class="special">(</span><span class="identifier">xx</span><span class="special">)</span> <span class="special">{}</span>
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sig</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">result</span><span class="special">;</span>
|
|
|
|
|
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">This</span><span class="special">></span>
|
|
|
|
|
<span class="keyword">struct</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">This</span><span class="special">(</span><span class="identifier">T</span><span class="special">)></span>
|
|
|
|
|
<span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">UseList</span><span class="special">::</span><span class="keyword">template</span>
|
|
|
|
|
<span class="identifier">List</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">LType</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span>
|
|
|
|
|
<span class="identifier">ListType</span><span class="special"><</span><span class="identifier">LType</span><span class="special">>::</span><span class="identifier">delay_result_type</span> <span class="identifier">type</span><span class="special">;</span>
|
|
|
|
|
<span class="special">};</span>
|
|
|
|
|
<span class="keyword">typename</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">EFH</span><span class="special">(</span><span class="identifier">T</span><span class="special">)>::</span><span class="identifier">type</span> <span class="keyword">operator</span><span class="special">()()</span> <span class="keyword">const</span> <span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">UseList</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">List</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">LType</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">ListType</span><span class="special"><</span><span class="identifier">LType</span><span class="special">>::</span>
|
|
|
|
|
<span class="identifier">delay_result_type</span> <span class="identifier">result_type</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function0</span><span class="special"><</span><span class="identifier">result_type</span><span class="special">></span> <span class="identifier">fun1_R_TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="comment">//std::cout << "EFH (" << x << ")" << std::endl;</span>
|
|
|
|
|
<span class="special">++</span><span class="identifier">x</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">fun1_R_TTT</span> <span class="identifier">efh_R_TTT</span> <span class="special">=</span> <span class="identifier">EFH</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">x</span><span class="special">);</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="identifier">fun1_R_TTT</span><span class="special">></span> <span class="identifier">EFH_R_T</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">EFH_R_T</span> <span class="identifier">efh_R_T</span><span class="special">(</span><span class="identifier">efh_R_TTT</span><span class="special">);</span>
|
|
|
|
|
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">></span> <span class="identifier">MAX_LIST_LENGTH</span><span class="special">)</span>
|
|
|
|
|
<span class="keyword">throw</span> <span class="identifier">lazy_exception</span><span class="special">(</span><span class="string">"Running away in EFH!!"</span><span class="special">);</span>
|
|
|
|
|
<span class="keyword">return</span> <span class="identifier">cons</span><span class="special">(</span> <span class="identifier">x</span><span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="identifier">efh_R_T</span><span class="special">()</span> <span class="special">);</span>
|
|
|
|
|
<span class="special">}</span>
|
|
|
|
|
<span class="special">};</span>
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">This</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">TT</span><span class="special">></span>
|
|
|
|
|
<span class="keyword">struct</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">This</span><span class="special">(</span><span class="identifier">TT</span><span class="special">)></span>
|
|
|
|
|
<span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">UseList</span><span class="special">::</span><span class="keyword">template</span>
|
|
|
|
|
<span class="identifier">List</span><span class="special"><</span><span class="identifier">TT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">LType</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span>
|
|
|
|
|
<span class="identifier">ListType</span><span class="special"><</span><span class="identifier">LType</span><span class="special">>::</span><span class="identifier">delay_result_type</span> <span class="identifier">type</span><span class="special">;</span>
|
|
|
|
|
<span class="special">};</span>
|
|
|
|
|
<span class="keyword">typename</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">EFH</span><span class="special">(</span><span class="identifier">T</span><span class="special">)>::</span><span class="identifier">type</span> <span class="keyword">operator</span><span class="special">()()</span> <span class="keyword">const</span> <span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">UseList</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">List</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">LType</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">ListType</span><span class="special"><</span><span class="identifier">LType</span><span class="special">>::</span>
|
|
|
|
|
<span class="identifier">delay_result_type</span> <span class="identifier">result_type</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function0</span><span class="special"><</span><span class="identifier">result_type</span><span class="special">></span> <span class="identifier">fun1_R_TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="special">++</span><span class="identifier">x</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">fun1_R_TTT</span> <span class="identifier">efh_R_TTT</span> <span class="special">=</span> <span class="identifier">EFH</span><span class="special"><</span><span class="identifier">T</span><span class="special">>(</span><span class="identifier">x</span><span class="special">);</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="identifier">fun1_R_TTT</span><span class="special">></span> <span class="identifier">EFH_R_T</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">EFH_R_T</span> <span class="identifier">efh_R_T</span><span class="special">(</span><span class="identifier">efh_R_TTT</span><span class="special">);</span>
|
|
|
|
|
<span class="preprocessor">#ifndef</span> <span class="identifier">BOOST_PHOENIX_NO_LAZY_EXCEPTIONS</span>
|
|
|
|
|
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">x</span> <span class="special">></span> <span class="identifier">BOOST_PHOENIX_FUNCTION_MAX_LAZY_LIST_LENGTH</span><span class="special">)</span>
|
|
|
|
|
<span class="keyword">throw</span> <span class="identifier">lazy_exception</span><span class="special">(</span><span class="string">"Running away in EFH!!"</span><span class="special">);</span>
|
|
|
|
|
<span class="preprocessor">#endif</span>
|
|
|
|
|
<span class="keyword">return</span> <span class="identifier">cons</span><span class="special">(</span> <span class="identifier">x</span><span class="special">-</span><span class="number">1</span><span class="special">,</span> <span class="identifier">efh_R_T</span><span class="special">()</span> <span class="special">);</span>
|
|
|
|
|
<span class="special">}</span>
|
|
|
|
|
<span class="special">};</span>
|
|
|
|
|
|
|
|
|
|
<span class="keyword">struct</span> <span class="identifier">Enum_from</span> <span class="special">{</span>
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sig</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">result</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">struct</span> <span class="identifier">Enum_from</span> <span class="special">{</span>
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Sig</span><span class="special">></span> <span class="keyword">struct</span> <span class="identifier">result</span><span class="special">;</span>
|
|
|
|
|
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">This</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
|
|
|
|
|
<span class="keyword">struct</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">This</span><span class="special">(</span><span class="identifier">T</span><span class="special">)></span>
|
|
|
|
|
<span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_const</span><span class="special"><</span><span class="identifier">TT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">UseList</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">List</span><span class="special"><</span><span class="identifier">TTT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">LType</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">ListType</span><span class="special"><</span><span class="identifier">LType</span><span class="special">>::</span>
|
|
|
|
|
<span class="identifier">delay_result_type</span> <span class="identifier">type</span><span class="special">;</span>
|
|
|
|
|
<span class="special">};</span>
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">This</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
|
|
|
|
|
<span class="keyword">struct</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">This</span><span class="special">(</span><span class="identifier">T</span><span class="special">)></span>
|
|
|
|
|
<span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_const</span><span class="special"><</span><span class="identifier">TT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">UseList</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">List</span><span class="special"><</span><span class="identifier">TTT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">LType</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">ListType</span><span class="special"><</span><span class="identifier">LType</span><span class="special">>::</span>
|
|
|
|
|
<span class="identifier">delay_result_type</span> <span class="identifier">type</span><span class="special">;</span>
|
|
|
|
|
<span class="special">};</span>
|
|
|
|
|
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
|
|
|
|
|
<span class="keyword">typename</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">Enum_from</span><span class="special">(</span><span class="identifier">T</span><span class="special">)>::</span><span class="identifier">type</span> <span class="keyword">operator</span><span class="special">()</span>
|
|
|
|
|
<span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span> <span class="identifier">x</span><span class="special">)</span> <span class="keyword">const</span>
|
|
|
|
|
<span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_const</span><span class="special"><</span><span class="identifier">TT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">UseList</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">List</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">LType</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">ListType</span><span class="special"><</span><span class="identifier">LType</span><span class="special">>::</span>
|
|
|
|
|
<span class="identifier">delay_result_type</span> <span class="identifier">result_type</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function0</span><span class="special"><</span><span class="identifier">result_type</span><span class="special">></span> <span class="identifier">fun1_R_TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">fun1_R_TTT</span> <span class="identifier">efh_R_TTT</span> <span class="special">=</span> <span class="identifier">EFH</span><span class="special"><</span><span class="identifier">TTT</span><span class="special">>(</span><span class="identifier">x</span><span class="special">);</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="identifier">fun1_R_TTT</span><span class="special">></span> <span class="identifier">EFH_R_T</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">EFH_R_T</span> <span class="identifier">efh_R_T</span><span class="special">(</span><span class="identifier">efh_R_TTT</span><span class="special">);</span>
|
|
|
|
|
<span class="comment">//std::cout << "enum_from (" << x << ")" << std::endl;</span>
|
|
|
|
|
<span class="keyword">return</span> <span class="identifier">efh_R_T</span><span class="special">();</span>
|
|
|
|
|
<span class="special">}</span>
|
|
|
|
|
<span class="special">};</span>
|
|
|
|
|
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span>
|
|
|
|
|
<span class="keyword">typename</span> <span class="identifier">result</span><span class="special"><</span><span class="identifier">Enum_from</span><span class="special">(</span><span class="identifier">T</span><span class="special">)>::</span><span class="identifier">type</span> <span class="keyword">operator</span><span class="special">()</span>
|
|
|
|
|
<span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span> <span class="special">&</span> <span class="identifier">x</span><span class="special">)</span> <span class="keyword">const</span>
|
|
|
|
|
<span class="special">{</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_const</span><span class="special"><</span><span class="identifier">TT</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">UseList</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">List</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">LType</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">ListType</span><span class="special"><</span><span class="identifier">LType</span><span class="special">>::</span>
|
|
|
|
|
<span class="identifier">delay_result_type</span> <span class="identifier">result_type</span><span class="special">;</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">function0</span><span class="special"><</span><span class="identifier">result_type</span><span class="special">></span> <span class="identifier">fun1_R_TTT</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">fun1_R_TTT</span> <span class="identifier">efh_R_TTT</span> <span class="special">=</span> <span class="identifier">EFH</span><span class="special"><</span><span class="identifier">TTT</span><span class="special">>(</span><span class="identifier">x</span><span class="special">);</span>
|
|
|
|
|
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="identifier">fun1_R_TTT</span><span class="special">></span> <span class="identifier">EFH_R_T</span><span class="special">;</span>
|
|
|
|
|
<span class="identifier">EFH_R_T</span> <span class="identifier">efh_R_T</span><span class="special">(</span><span class="identifier">efh_R_TTT</span><span class="special">);</span>
|
|
|
|
|
<span class="comment">//std::cout << "enum_from (" << x << ")" << std::endl;</span>
|
|
|
|
|
<span class="keyword">return</span> <span class="identifier">efh_R_T</span><span class="special">();</span>
|
|
|
|
|
<span class="special">}</span>
|
|
|
|
|
<span class="special">};</span>
|
|
|
|
|
</pre>
|
|
|
|
|
<p>
|
|
|
|
|
Similar code is used in the related functors
|
|
|
|
|
@@ -287,7 +286,7 @@
|
|
|
|
|
</tr></table>
|
|
|
|
|
<hr>
|
|
|
|
|
<div class="spirit-nav">
|
|
|
|
|
<a accesskey="p" href="tutorial_with_examples/list_generation.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lazy_list.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="testing.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
|
|
|
|
<a accesskey="p" href="exceptions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lazy_list.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="testing.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
|
|
|
|
|
</div>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
|