c3dec40e72
Gmane had been closed and not back yet.
69 lines
2.9 KiB
Plaintext
69 lines
2.9 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. Here is a link to
|
|
the archives: __list_archive__.
|
|
|
|
[endsect]
|
|
|