• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Preface</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. Fusion 2.2">
8<link rel="up" href="../index.html" title="Chapter 1. Fusion 2.2">
9<link rel="prev" href="../index.html" title="Chapter 1. Fusion 2.2">
10<link rel="next" href="introduction.html" title="Introduction">
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="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="introduction.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h2 class="title" style="clear: both">
27<a name="fusion.preface"></a><a class="link" href="preface.html" title="Preface">Preface</a>
28</h2></div></div></div>
29<div class="blockquote"><blockquote class="blockquote"><p>
30        <span class="emphasis"><em><span class="quote">“<span class="quote">Algorithms + Data Structures = Programs.</span>”</span></em></span>
31      </p></blockquote></div>
32<div class="blockquote"><blockquote class="blockquote"><p>
33        <span class="bold"><strong>--Niklaus Wirth</strong></span>
34      </p></blockquote></div>
35<h4>
36<a name="fusion.preface.h0"></a>
37      <span class="phrase"><a name="fusion.preface.description"></a></span><a class="link" href="preface.html#fusion.preface.description">Description</a>
38    </h4>
39<p>
40      Fusion is a library for working with heterogeneous collections of data, commonly
41      referred to as tuples. A set of containers (vector, list, set and map) is provided,
42      along with views that provide a transformed presentation of their underlying
43      data. Collectively the containers and views are referred to as sequences, and
44      Fusion has a suite of algorithms that operate upon the various sequence types,
45      using an iterator concept that binds everything together.
46    </p>
47<p>
48      The architecture is modeled after <a href="http://www.boost.org/libs/mpl" target="_top">MPL</a>
49      which in turn is modeled after <a href="http://en.wikipedia.org/wiki/Standard_Template_Library" target="_top">STL</a>.
50      It is named "fusion" because the library is a "fusion"
51      of compile time metaprogramming with runtime programming.
52    </p>
53<h4>
54<a name="fusion.preface.h1"></a>
55      <span class="phrase"><a name="fusion.preface.motivation"></a></span><a class="link" href="preface.html#fusion.preface.motivation">Motivation</a>
56    </h4>
57<p>
58      Tuples are powerful beasts. After having developed two significant projects
59      (<a href="http://boost-spirit.com/home/" target="_top">Spirit</a> and <a href="http://www.boost.org/libs/phoenix" target="_top">Phoenix</a>)
60      that relied heavily metaprogramming, it became apparent that tuples are a powerful
61      means to simplify otherwise tricky tasks; especially those that require a combination
62      of metaprogramming and manipulation of heterogeneous data types with values.
63      While <a href="http://www.boost.org/libs/mpl" target="_top">MPL</a> is an extremely
64      powerful metaprogramming tool, <a href="http://www.boost.org/libs/mpl" target="_top">MPL</a>
65      focuses on type manipulation only. Ultimately, you'll have to map these types
66      to real values to make them useful in the runtime world where all the real
67      action takes place.
68    </p>
69<p>
70      As <a href="http://boost-spirit.com/home/" target="_top">Spirit</a> and <a href="http://www.boost.org/libs/phoenix" target="_top">Phoenix</a>
71      evolved, patterns and idioms related to tuple manipulation emerged. Soon, it
72      became clear that those patterns and idioms were best assembled in a tuples
73      algorithms library. <a href="http://www.boost.org/people/dave_abrahams.htm" target="_top">David
74      Abrahams</a> outlined such a scheme in 2002. At that time, it just so happened
75      that <a href="http://boost-spirit.com/home/" target="_top">Spirit</a> and <a href="http://www.boost.org/libs/phoenix" target="_top">Phoenix</a>
76      had an adhoc collection of tuple manipulation and traversal routines. It was
77      an instant <span class="emphasis"><em>AHA!</em></span> moment.
78    </p>
79<h4>
80<a name="fusion.preface.h2"></a>
81      <span class="phrase"><a name="fusion.preface.how_to_use_this_manual"></a></span><a class="link" href="preface.html#fusion.preface.how_to_use_this_manual">How
82      to use this manual</a>
83    </h4>
84<p>
85      Some icons are used to mark certain topics indicative of their relevance. These
86      icons precede some text to indicate:
87    </p>
88<div class="note"><table border="0" summary="Note">
89<tr>
90<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../doc/src/images/note.png"></td>
91<th align="left">Note</th>
92</tr>
93<tr><td align="left" valign="top"><p>
94        Information provided is auxiliary but will give the reader a deeper insight
95        into a specific topic. May be skipped.
96      </p></td></tr>
97</table></div>
98<div class="important"><table border="0" summary="Important">
99<tr>
100<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../../doc/src/images/important.png"></td>
101<th align="left">Important</th>
102</tr>
103<tr><td align="left" valign="top"><p>
104        Information provided is of utmost importance.
105      </p></td></tr>
106</table></div>
107<div class="caution"><table border="0" summary="Caution">
108<tr>
109<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../doc/src/images/caution.png"></td>
110<th align="left">Caution</th>
111</tr>
112<tr><td align="left" valign="top"><p>
113        A mild warning.
114      </p></td></tr>
115</table></div>
116<div class="tip"><table border="0" summary="Tip">
117<tr>
118<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../../doc/src/images/tip.png"></td>
119<th align="left">Tip</th>
120</tr>
121<tr><td align="left" valign="top"><p>
122        A potentially useful and helpful piece of information.
123      </p></td></tr>
124</table></div>
125<p>
126      This documentation is automatically generated by Boost QuickBook documentation
127      tool. QuickBook can be found in the <a href="http://www.boost.org/tools/index.html" target="_top">Boost
128      Tools</a>.
129    </p>
130<h4>
131<a name="fusion.preface.h3"></a>
132      <span class="phrase"><a name="fusion.preface.support"></a></span><a class="link" href="preface.html#fusion.preface.support">Support</a>
133    </h4>
134<p>
135      Please direct all questions to Spirit's mailing list. You can subscribe to
136      the <a href="https://sourceforge.net/projects/spirit/lists/spirit-general" target="_top">Spirit
137      Mailing List</a>. The mailing list has a searchable archive. Here is a
138      link to the archives: <a href="https://sourceforge.net/p/spirit/mailman/spirit-general/" target="_top">archive</a>.
139    </p>
140</div>
141<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
142<td align="left"></td>
143<td align="right"><div class="copyright-footer">Copyright © 2001-2006, 2011, 2012 Joel de Guzman,
144      Dan Marsden, Tobias Schwinger<p>
145        Distributed under the Boost Software License, Version 1.0. (See accompanying
146        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>)
147      </p>
148</div></td>
149</tr></table>
150<hr>
151<div class="spirit-nav">
152<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.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="introduction.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
153</div>
154</body>
155</html>
156