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