1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- [/==============================================================================
- 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]
|