72 lines
3.2 KiB
Plaintext
72 lines
3.2 KiB
Plaintext
|
[/==============================================================================
|
||
|
Copyright (C) 2001-2011 Joel de Guzman
|
||
|
Copyright (C) 2006 Dan Marsden
|
||
|
|
||
|
Use, modification and distribution is subject to the Boost Software
|
||
|
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||
|
http://www.boost.org/LICENSE_1_0.txt)
|
||
|
===============================================================================/]
|
||
|
[section Preface]
|
||
|
|
||
|
[:['["Algorithms + Data Structures = Programs.]]]
|
||
|
[:*--Niklaus Wirth*]
|
||
|
|
||
|
[heading Description]
|
||
|
|
||
|
Fusion is a library for working with heterogeneous 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.
|
||
|
|
||
|
The architecture is modeled after __mpl__ which in turn is modeled after
|
||
|
__stl__. It is named "fusion" because the library is a "fusion" of compile
|
||
|
time metaprogramming with runtime programming.
|
||
|
|
||
|
[heading Motivation]
|
||
|
|
||
|
Tuples are powerful beasts. After having developed two significant projects
|
||
|
(__spirit__ and __phoenix__) 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 heterogeneous data types with values. While __mpl__ is an
|
||
|
extremely powerful metaprogramming tool, __mpl__ 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.
|
||
|
|
||
|
As __spirit__ and __phoenix__ 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. __david_abrahams__
|
||
|
outlined such a scheme in 2002. At that time, it just so happened that
|
||
|
__spirit__ and __phoenix__ had an adhoc collection of tuple manipulation
|
||
|
and traversal routines. It was an instant /AHA!/ moment.
|
||
|
|
||
|
[heading How to use this manual]
|
||
|
|
||
|
Some icons are used to mark certain topics indicative of their relevance.
|
||
|
These icons precede some text to indicate:
|
||
|
|
||
|
[note Information provided is auxiliary but will give the reader a deeper
|
||
|
insight into a specific topic. May be skipped.]
|
||
|
[important Information provided is of utmost importance.]
|
||
|
[caution A mild warning.]
|
||
|
[tip A potentially useful and helpful piece of information.]
|
||
|
|
||
|
This documentation is automatically generated by Boost QuickBook documentation
|
||
|
tool. QuickBook can be found in the __boost_tools__.
|
||
|
|
||
|
[heading Support]
|
||
|
|
||
|
Please direct all questions to Spirit's mailing list. You can subscribe to the
|
||
|
__spirit_list__. The mailing list has a searchable archive. A search link to
|
||
|
this archive is provided in __spirit__'s home page. You may also read and post
|
||
|
messages to the mailing list through __spirit_general__ (thanks to __gmane__).
|
||
|
The news group mirrors the mailing list. Here is a link to the archives:
|
||
|
__mlist_archive__.
|
||
|
|
||
|
[endsect]
|
||
|
|