mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-16 13:52:24 +02:00
69 lines
3.0 KiB
Plaintext
69 lines
3.0 KiB
Plaintext
![]() |
[section Preface]
|
||
|
|
||
|
[:['["Algorithms + Data Structures = Programs.]]]
|
||
|
[:*--Niklaus Wirth*]
|
||
|
|
||
|
[heading Description]
|
||
|
|
||
|
Fusion is a library for working with hetrogenous 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 heterogenous 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:
|
||
|
|
||
|
[table Icons
|
||
|
[[Icon] [Name] [Meaning]]
|
||
|
[[__note__] [Note] [Information provided is auxiliary but will
|
||
|
give the reader a deeper insight into a specific
|
||
|
topic. May be skipped.]]
|
||
|
[[__alert__] [Alert] [Information provided is of utmost importance.]]
|
||
|
[[__caution__] [Caution] [A mild warning.]]
|
||
|
[[__tip__] [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]
|
||
|
|