PageRenderTime 73ms CodeModel.GetById 34ms app.highlight 26ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/libs/phoenix/doc/html/index.html

http://hadesmem.googlecode.com/
HTML | 305 lines | 305 code | 0 blank | 0 comment | 0 complexity | 90f475030d061286bdbb22aecb72b37e MD5 | raw file
  1<html>
  2<head>
  3<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  4<title>Chapter&#160;1.&#160;Phoenix 3.0</title>
  5<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
  6<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
  7<link rel="home" href="index.html" title="Chapter&#160;1.&#160;Phoenix 3.0">
  8<link rel="next" href="phoenix/what_s_new.html" title="What's New">
  9</head>
 10<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 11<table cellpadding="2" width="100%"><tr>
 12<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
 13<td align="center"><a href="../../../../index.html">Home</a></td>
 14<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
 15<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
 16<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
 17<td align="center"><a href="../../../../more/index.htm">More</a></td>
 18</tr></table>
 19<hr>
 20<div class="spirit-nav"><a accesskey="n" href="phoenix/what_s_new.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
 21<div class="chapter">
 22<div class="titlepage"><div>
 23<div><h2 class="title">
 24<a name="phoenix"></a>Chapter&#160;1.&#160;Phoenix 3.0</h2></div>
 25<div><div class="author"><h3 class="author">
 26<span class="firstname">Joel</span> <span class="surname">de Guzman</span>
 27</h3></div></div>
 28<div><div class="author"><h3 class="author">
 29<span class="firstname">Dan</span> <span class="surname">Marsden</span>
 30</h3></div></div>
 31<div><div class="author"><h3 class="author">
 32<span class="firstname">Thomas</span> <span class="surname">Heller</span>
 33</h3></div></div>
 34<div><p class="copyright">Copyright &#169; 2002-2005, 2010 Joel de Guzman, Dan Marsden, Thomas Heller</p></div>
 35<div><div class="legalnotice">
 36<a name="id761240"></a><p>
 37        Distributed under the Boost Software License, Version 1.0. (See accompanying
 38        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>)
 39      </p>
 40</div></div>
 41</div></div>
 42<div class="toc">
 43<p><b>Table of Contents</b></p>
 44<dl>
 45<dt><span class="section"><a href="phoenix/what_s_new.html">What's New</a></span></dt>
 46<dd><dl><dt><span class="section"><a href="phoenix/what_s_new/phoenix_3_0.html">Phoenix 3.0</a></span></dt></dl></dd>
 47<dt><span class="section"><a href="phoenix/introduction.html">Introduction</a></span></dt>
 48<dt><span class="section"><a href="phoenix/starter_kit.html">Starter Kit</a></span></dt>
 49<dd><dl>
 50<dt><span class="section"><a href="phoenix/starter_kit/values.html">Values</a></span></dt>
 51<dt><span class="section"><a href="phoenix/starter_kit/references.html">References</a></span></dt>
 52<dt><span class="section"><a href="phoenix/starter_kit/arguments.html">Arguments</a></span></dt>
 53<dt><span class="section"><a href="phoenix/starter_kit/lazy_operators.html">Lazy Operators</a></span></dt>
 54<dt><span class="section"><a href="phoenix/starter_kit/lazy_statements.html">Lazy Statements</a></span></dt>
 55<dt><span class="section"><a href="phoenix/starter_kit/construct__new__delete__casts.html">Construct,
 56      New, Delete, Casts</a></span></dt>
 57<dt><span class="section"><a href="phoenix/starter_kit/lazy_functions.html">Lazy Functions</a></span></dt>
 58<dt><span class="section"><a href="phoenix/starter_kit/more.html">More</a></span></dt>
 59</dl></dd>
 60<dt><span class="section"><a href="phoenix/basics.html">Basics</a></span></dt>
 61<dt><span class="section"><a href="phoenix/organization.html">Organization</a></span></dt>
 62<dt><span class="section"><a href="phoenix/actor.html">Actor</a></span></dt>
 63<dt><span class="section"><a href="phoenix/modules.html">Modules</a></span></dt>
 64<dd><dl>
 65<dt><span class="section"><a href="phoenix/modules/core.html">Core</a></span></dt>
 66<dd><dl>
 67<dt><span class="section"><a href="phoenix/modules/core/values.html">Values</a></span></dt>
 68<dt><span class="section"><a href="phoenix/modules/core/references.html">References</a></span></dt>
 69<dt><span class="section"><a href="phoenix/modules/core/arguments.html">Arguments</a></span></dt>
 70<dt><span class="section"><a href="phoenix/modules/core/nothing.html">Nothing</a></span></dt>
 71</dl></dd>
 72<dt><span class="section"><a href="phoenix/modules/function.html">Function</a></span></dt>
 73<dd><dl><dt><span class="section"><a href="phoenix/modules/function/adapting_functions.html">Adapting
 74        Functions</a></span></dt></dl></dd>
 75<dt><span class="section"><a href="phoenix/modules/operator.html">Operator</a></span></dt>
 76<dt><span class="section"><a href="phoenix/modules/statement.html">Statement</a></span></dt>
 77<dd><dl>
 78<dt><span class="section"><a href="phoenix/modules/statement/block_statement.html">Block Statement</a></span></dt>
 79<dt><span class="section"><a href="phoenix/modules/statement/if__statement.html">if_ Statement</a></span></dt>
 80<dt><span class="section"><a href="phoenix/modules/statement/___if_else_____statement.html">if_else_ Statement</a></span></dt>
 81<dt><span class="section"><a href="phoenix/modules/statement/switch__statement.html">switch_
 82        Statement</a></span></dt>
 83<dt><span class="section"><a href="phoenix/modules/statement/while__statement.html">while_
 84        Statement</a></span></dt>
 85<dt><span class="section"><a href="phoenix/modules/statement/___do_while_____statement.html">do_while_ Statement</a></span></dt>
 86<dt><span class="section"><a href="phoenix/modules/statement/for_statement.html">for_ Statement</a></span></dt>
 87<dt><span class="section"><a href="phoenix/modules/statement/try__catch__statement.html">try_
 88        catch_ Statement</a></span></dt>
 89<dt><span class="section"><a href="phoenix/modules/statement/throw_.html">throw_</a></span></dt>
 90</dl></dd>
 91<dt><span class="section"><a href="phoenix/modules/object.html">Object</a></span></dt>
 92<dd><dl>
 93<dt><span class="section"><a href="phoenix/modules/object/construction.html">Construction</a></span></dt>
 94<dt><span class="section"><a href="phoenix/modules/object/new.html">New</a></span></dt>
 95<dt><span class="section"><a href="phoenix/modules/object/delete.html">Delete</a></span></dt>
 96<dt><span class="section"><a href="phoenix/modules/object/casts.html">Casts</a></span></dt>
 97</dl></dd>
 98<dt><span class="section"><a href="phoenix/modules/scope.html">Scope</a></span></dt>
 99<dd><dl>
100<dt><span class="section"><a href="phoenix/modules/scope/local_variables.html">Local Variables</a></span></dt>
101<dt><span class="section"><a href="phoenix/modules/scope/let.html">let</a></span></dt>
102<dt><span class="section"><a href="phoenix/modules/scope/lambda.html">lambda</a></span></dt>
103</dl></dd>
104<dt><span class="section"><a href="phoenix/modules/bind.html">Bind</a></span></dt>
105<dd><dl>
106<dt><span class="section"><a href="phoenix/modules/bind/binding_function_objects.html">Binding
107        Function Objects</a></span></dt>
108<dt><span class="section"><a href="phoenix/modules/bind/binding_functions.html">Binding Functions</a></span></dt>
109<dt><span class="section"><a href="phoenix/modules/bind/binding_member_functions.html">Binding
110        Member Functions</a></span></dt>
111<dt><span class="section"><a href="phoenix/modules/bind/binding_member_variables.html">Binding
112        Member Variables</a></span></dt>
113<dt><span class="section"><a href="phoenix/modules/bind/compatibility_with_boost_bind.html">Compatibility
114        with Boost.Bind</a></span></dt>
115</dl></dd>
116<dt><span class="section"><a href="phoenix/modules/stl.html">STL</a></span></dt>
117<dd><dl>
118<dt><span class="section"><a href="phoenix/modules/stl/container.html">Container</a></span></dt>
119<dt><span class="section"><a href="phoenix/modules/stl/algorithm.html">Algorithm</a></span></dt>
120</dl></dd>
121</dl></dd>
122<dt><span class="section"><a href="phoenix/inside.html">Inside Phoenix</a></span></dt>
123<dd><dl>
124<dt><span class="section"><a href="phoenix/inside/actor.html">Actors in Detail</a></span></dt>
125<dt><span class="section"><a href="phoenix/inside/expression.html">Phoenix Expressions</a></span></dt>
126<dd><dl><dt><span class="section"><a href="phoenix/inside/expression/boilerplate_macros.html">Boilerplate
127        Macros</a></span></dt></dl></dd>
128<dt><span class="section"><a href="phoenix/inside/actions.html">More on Actions</a></span></dt>
129<dt><span class="section"><a href="phoenix/inside/rules.html">Predefined Expressions and Rules</a></span></dt>
130<dt><span class="section"><a href="phoenix/inside/custom_terminals.html">Custom Terminals</a></span></dt>
131<dt><span class="section"><a href="phoenix/inside/placeholder_unification.html">Placeholder Unification</a></span></dt>
132</dl></dd>
133<dt><span class="section"><a href="phoenix/examples.html">Advanced Examples</a></span></dt>
134<dd><dl>
135<dt><span class="section"><a href="phoenix/examples/extending_actors.html">Extending Actors</a></span></dt>
136<dt><span class="section"><a href="phoenix/examples/adding_an_expression.html">Adding an expression</a></span></dt>
137<dt><span class="section"><a href="phoenix/examples/transforming_the_expression_tree.html">Transforming
138      the Expression Tree</a></span></dt>
139</dl></dd>
140<dt><span class="section"><a href="phoenix/wrap_up.html">Wrap Up</a></span></dt>
141<dt><span class="section"><a href="phoenix/acknowledgments.html">Acknowledgments</a></span></dt>
142<dt><span class="section"><a href="phoenix/references.html">References</a></span></dt>
143</dl>
144</div>
145<a name="phoenix.preface"></a><h2>
146<a name="id791930"></a>
147    <a class="link" href="index.html#phoenix.preface">Preface</a>
148  </h2>
149<div class="blockquote"><blockquote class="blockquote"><p>
150      <span class="emphasis"><em>Functional programming is so called because a program consists entirely
151      of functions. The main program itself is written as a function which receives
152      the program's input as its argument and delivers the program's output as its
153      result. Typically the main function is defined in terms of other functions,
154      which in turn are defined in terms of still more functions until at the bottom
155      level the functions are language primitives.</em></span>
156    </p></blockquote></div>
157<div class="blockquote"><blockquote class="blockquote"><p>
158      <span class="bold"><strong>John Hughes</strong></span>-- <span class="emphasis"><em>Why Functional Programming
159      Matters</em></span>
160    </p></blockquote></div>
161<p>
162    <span class="inlinemediaobject"><img src="images/lambda_cpp.png" alt="lambda_cpp"></span>
163  </p>
164<a name="phoenix.description"></a><h3>
165<a name="id760043"></a>
166    <a class="link" href="index.html#phoenix.description">Description</a>
167  </h3>
168<p>
169    Phoenix enables Functional Programming (FP) in C++. The design and implementation
170    of Phoenix is highly influenced by <a href="http://www.cc.gatech.edu/~yannis/fc++/" target="_top">FC++</a>
171    by Yannis Smaragdakis and Brian McNamara and the <a href="http://www.boost.org/libs/lambda/doc/index.html" target="_top">BLL</a>
172    (Boost Lambda Library) by Jaakko Jaarvi and Gary Powell. Phoenix is a blend of
173    FC++ and BLL using the implementation techniques used in the <a href="http://spirit.sourceforge.net" target="_top">Spirit</a>
174    inline parser.
175  </p>
176<p>
177    Phoenix is a header only library. It is extremely modular by design. One can
178    extract and use only a small subset of the full library, literally tearing the
179    library into small pieces, without fear that the pieces won't work anymore. The
180    library is organized in highly independent modules and layers.
181  </p>
182<a name="phoenix.how_to_use_this_manual"></a><h3>
183<a name="id760090"></a>
184    <a class="link" href="index.html#phoenix.how_to_use_this_manual">How to use this manual</a>
185  </h3>
186<p>
187    The Phoenix library is organized in logical modules. This documentation provides
188    a user's guide and reference for each module in the library. A simple and clear
189    code example is worth a hundred lines of documentation; therefore, the user's
190    guide is presented with abundant examples annotated and explained in step-wise
191    manner. The user's guide is based on examples: lots of them.
192  </p>
193<p>
194    As much as possible, forward information (i.e. citing a specific piece of information
195    that has not yet been discussed) is avoided in the user's manual portion of each
196    module. In many cases, though, it is unavoidable that advanced but related topics
197    not be interspersed with the normal flow of discussion. To alleviate this problem,
198    topics categorized as "advanced" may be skipped at first reading.
199  </p>
200<p>
201    Some icons are used to mark certain topics indicative of their relevance. These
202    icons precede some text to indicate:
203  </p>
204<div class="table">
205<a name="id760121"></a><p class="title"><b>Table&#160;1.1.&#160;Icons</b></p>
206<div class="table-contents"><table class="table" summary="Icons">
207<colgroup>
208<col>
209<col>
210<col>
211</colgroup>
212<thead><tr>
213<th>
214            <p>
215              Icon
216            </p>
217          </th>
218<th>
219            <p>
220              Name
221            </p>
222          </th>
223<th>
224            <p>
225              Meaning
226            </p>
227          </th>
228</tr></thead>
229<tbody>
230<tr>
231<td>
232            <p>
233              <span class="inlinemediaobject"><img src="images/note.png" alt="note"></span>
234            </p>
235          </td>
236<td>
237            <p>
238              Note
239            </p>
240          </td>
241<td>
242            <p>
243              Information provided is auxiliary but will give the reader a deeper
244              insight into a specific topic. May be skipped.
245            </p>
246          </td>
247</tr>
248<tr>
249<td>
250            <p>
251              <span class="inlinemediaobject"><img src="images/alert.png" alt="alert"></span>
252            </p>
253          </td>
254<td>
255            <p>
256              Alert
257            </p>
258          </td>
259<td>
260            <p>
261              Information provided is of utmost importance.
262            </p>
263          </td>
264</tr>
265<tr>
266<td>
267            <p>
268              <span class="inlinemediaobject"><img src="images/tip.png" alt="tip"></span>
269            </p>
270          </td>
271<td>
272            <p>
273              Tip
274            </p>
275          </td>
276<td>
277            <p>
278              A potentially useful and helpful piece of information.
279            </p>
280          </td>
281</tr>
282</tbody>
283</table></div>
284</div>
285<br class="table-break"><div class="sidebar">
286<div class="titlepage"></div>
287<p>
288    <span class="inlinemediaobject"><img src="images/note.png" alt="note"></span> Unless otherwise noted <code class="computeroutput"><span class="keyword">using</span>
289    <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">phoenix</span><span class="special">;</span></code>
290    is assumed
291  </p>
292</div>
293<a name="phoenix._emphasis_role__bold___emphasis____to_joel_s_dear_daughter__phoenix__emphasis___emphasis_"></a><h3>
294<a name="id800887"></a>
295    <a class="link" href="index.html#phoenix._emphasis_role__bold___emphasis____to_joel_s_dear_daughter__phoenix__emphasis___emphasis_"><span class="bold"><strong><span class="emphasis"><em>...To Joel's dear daughter, Phoenix</em></span></strong></span></a>
296  </h3>
297</div>
298<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
299<td align="left"><p><small>Last revised: May 26, 2011 at 08:54:43 GMT</small></p></td>
300<td align="right"><div class="copyright-footer"></div></td>
301</tr></table>
302<hr>
303<div class="spirit-nav"><a accesskey="n" href="phoenix/what_s_new.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
304</body>
305</html>