summaryrefslogtreecommitdiff
path: root/libs/fusion/doc/html/fusion/preface.html
blob: 3be52867987369954f8bea97a1bacd6a216893f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Preface</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.1">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.1">
<link rel="prev" href="../index.html" title="Chapter&#160;1.&#160;Fusion 2.1">
<link rel="next" href="introduction.html" title="Introduction">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<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>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="fusion.preface"></a><a class="link" href="preface.html" title="Preface">Preface</a>
</h2></div></div></div>
<div class="blockquote"><blockquote class="blockquote"><p>
        <span class="emphasis"><em><span class="quote">&#8220;<span class="quote">Algorithms + Data Structures = Programs.</span>&#8221;</span></em></span>
      </p></blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
        <span class="bold"><strong>--Niklaus Wirth</strong></span>
      </p></blockquote></div>
<h4>
<a name="fusion.preface.h0"></a>
      <span><a name="fusion.preface.description"></a></span><a class="link" href="preface.html#fusion.preface.description">Description</a>
    </h4>
<p>
      Fusion is a library for working with heterogenous collections of data, commonly
      referred to as tuples. A set of containers (vector, list, set and map) is provided,
      along with views that provide a transformed presentation of their underlying
      data. Collectively the containers and views are referred to as sequences, and
      Fusion has a suite of algorithms that operate upon the various sequence types,
      using an iterator concept that binds everything together.
    </p>
<p>
      The architecture is modeled after <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
      which in turn is modeled after <a href="http://en.wikipedia.org/wiki/Standard_Template_Library" target="_top">STL</a>.
      It is named "fusion" because the library is a "fusion"
      of compile time metaprogramming with runtime programming.
    </p>
<h4>
<a name="fusion.preface.h1"></a>
      <span><a name="fusion.preface.motivation"></a></span><a class="link" href="preface.html#fusion.preface.motivation">Motivation</a>
    </h4>
<p>
      Tuples are powerful beasts. After having developed two significant projects
      (<a href="http://spirit.sourceforge.net" target="_top">Spirit</a> and <a href="http://boost.org/libs/spirit/phoenix/index.html" target="_top">Phoenix</a>)
      that relied heavily metaprogramming, it became apparent that tuples are a powerful
      means to simplify otherwise tricky tasks; especially those that require a combination
      of metaprogramming and manipulation of heterogenous data types with values.
      While <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a> is
      an extremely powerful metaprogramming tool, <a href="http://www.boost.org/libs/mpl/index.html" target="_top">MPL</a>
      focuses on type manipulation only. Ultimately, you'll have to map these types
      to real values to make them useful in the runtime world where all the real
      action takes place.
    </p>
<p>
      As <a href="http://spirit.sourceforge.net" target="_top">Spirit</a> and <a href="http://boost.org/libs/spirit/phoenix/index.html" target="_top">Phoenix</a>
      evolved, patterns and idioms related to tuple manipulation emerged. Soon, it
      became clear that those patterns and idioms were best assembled in a tuples
      algorithms library. <a href="http://www.boost.org/people/dave_abrahams.htm" target="_top">David
      Abrahams</a> outlined such a scheme in 2002. At that time, it just so happened
      that <a href="http://spirit.sourceforge.net" target="_top">Spirit</a> and <a href="http://boost.org/libs/spirit/phoenix/index.html" target="_top">Phoenix</a>
      had an adhoc collection of tuple manipulation and traversal routines. It was
      an instant <span class="emphasis"><em>AHA!</em></span> moment.
    </p>
<h4>
<a name="fusion.preface.h2"></a>
      <span><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
      to use this manual</a>
    </h4>
<p>
      Some icons are used to mark certain topics indicative of their relevance. These
      icons precede some text to indicate:
    </p>
<div class="table">
<a name="fusion.preface.t0"></a><p class="title"><b>Table&#160;1.1.&#160;Icons</b></p>
<div class="table-contents"><table class="table" summary="Icons">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
              <p>
                Icon
              </p>
            </th>
<th>
              <p>
                Name
              </p>
            </th>
<th>
              <p>
                Meaning
              </p>
            </th>
</tr></thead>
<tbody>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/note.png" alt="note"></span>
              </p>
            </td>
<td>
              <p>
                Note
              </p>
            </td>
<td>
              <p>
                Information provided is auxiliary but will give the reader a deeper
                insight into a specific topic. May be skipped.
              </p>
            </td>
</tr>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/alert.png" alt="alert"></span>
              </p>
            </td>
<td>
              <p>
                Alert
              </p>
            </td>
<td>
              <p>
                Information provided is of utmost importance.
              </p>
            </td>
</tr>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/caution.png" alt="caution"></span>
              </p>
            </td>
<td>
              <p>
                Caution
              </p>
            </td>
<td>
              <p>
                A mild warning.
              </p>
            </td>
</tr>
<tr>
<td>
              <p>
                <span class="inlinemediaobject"><img src="../images/tip.png" alt="tip"></span>
              </p>
            </td>
<td>
              <p>
                Tip
              </p>
            </td>
<td>
              <p>
                A potentially useful and helpful piece of information.
              </p>
            </td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>
      This documentation is automatically generated by Boost QuickBook documentation
      tool. QuickBook can be found in the <a href="http://www.boost.org/tools/index.html" target="_top">Boost
      Tools</a>.
    </p>
<h4>
<a name="fusion.preface.h3"></a>
      <span><a name="fusion.preface.support"></a></span><a class="link" href="preface.html#fusion.preface.support">Support</a>
    </h4>
<p>
      Please direct all questions to Spirit's mailing list. You can subscribe to
      the <a href="https://lists.sourceforge.net/lists/listinfo/spirit-general" target="_top">Spirit
      Mailing List</a>. The mailing list has a searchable archive. A search link
      to this archive is provided in <a href="http://spirit.sourceforge.net" target="_top">Spirit</a>'s
      home page. You may also read and post messages to the mailing list through
      <a href="news://news.gmane.org/gmane.comp.spirit.general" target="_top">Spirit General
      NNTP news portal</a> (thanks to <a href="http://www.gmane.org" target="_top">Gmane</a>).
      The news group mirrors the mailing list. Here is a link to the archives: <a href="http://news.gmane.org/gmane.comp.parsers.spirit.general" target="_top">http://news.gmane.org/gmane.comp.parsers.spirit.general</a>.
    </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2006, 2011 Joel de Guzman, Dan Marsden, Tobias
      Schwinger<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        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>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<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>
</div>
</body>
</html>