@ -89,6 +89,35 @@ __std_pair_doc__, __tr1_tuple_pair__
|
||||
|
||||
[endsect]
|
||||
|
||||
[section std::tuple]
|
||||
|
||||
This module provides adapters for `std::tuple`. Including the module header
|
||||
makes `std::tuple` a fully conforming __random_access_sequence__.
|
||||
|
||||
[important To be fully conforming, compiler should support C++11 Variadic Templates.]
|
||||
|
||||
[heading Header]
|
||||
|
||||
#include <boost/fusion/adapted/std_tuple.hpp>
|
||||
#include <boost/fusion/include/std_tuple.hpp>
|
||||
|
||||
[heading Model of]
|
||||
|
||||
* __random_access_sequence__
|
||||
|
||||
[heading Example]
|
||||
|
||||
std::tuple<int, std::string, float> p(123, "Hola!!!", 456.f);
|
||||
std::cout << __at_c__<0>(p) << std::endl;
|
||||
std::cout << __at_c__<1>(p) << std::endl;
|
||||
std::cout << p << std::endl;
|
||||
|
||||
[heading See also]
|
||||
|
||||
__std_tuple_doc__
|
||||
|
||||
[endsect]
|
||||
|
||||
[section mpl sequence]
|
||||
|
||||
This module provides adapters for __mpl__ sequences. Including the module
|
||||
@ -168,8 +197,8 @@ header makes `boost::tuple` a fully conforming __forward_sequence__.
|
||||
[heading Example]
|
||||
|
||||
boost::tuple<int,std::string> example_tuple(101, "hello");
|
||||
std::cout << *boost::fusion::begin(example_tuple) << '\n';
|
||||
std::cout << *boost::fusion::next(boost::fusion::begin(example_tuple)) << '\n';
|
||||
std::cout << *__begin__(example_tuple) << '\n';
|
||||
std::cout << *__next__(__begin__(example_tuple)) << '\n';
|
||||
|
||||
[heading See also]
|
||||
|
||||
|
@ -191,7 +191,7 @@ defined in __forward_sequence__.
|
||||
[[`__at__<N>(l)`] [The Nth element from the beginning of the sequence; see __at__.]]
|
||||
]
|
||||
|
||||
[blurb __note__ `__at__<N>(l)` is provided for convenience and compatibility
|
||||
[note `__at__<N>(l)` is provided for convenience and compatibility
|
||||
with the original __tuple__ library, despite `cons` being a
|
||||
__forward_sequence__ only (`at` is supposed to be a
|
||||
__random_access_sequence__ requirement). The runtime complexity of __at__ is
|
||||
@ -276,7 +276,7 @@ defined in __forward_sequence__.
|
||||
[[`__at__<N>(l)`] [The Nth element from the beginning of the sequence; see __at__.]]
|
||||
]
|
||||
|
||||
[blurb __note__ `__at__<n>(l)` is provided for convenience and compatibility
|
||||
[note `__at__<n>(l)` is provided for convenience and compatibility
|
||||
with the original __tuple__ library, despite `list` being a
|
||||
__forward_sequence__ only (__at__ is supposed to be a
|
||||
__random_access_sequence__ requirement). The runtime complexity of __at__ is
|
||||
@ -363,7 +363,7 @@ defined in __bidirectional_sequence__.
|
||||
[[`__at__<N>(d)`] [The Nth element from the beginning of the sequence; see __at__.]]
|
||||
]
|
||||
|
||||
[blurb __note__ `__at__<N>(d)` is provided for convenience, despite
|
||||
[note `__at__<N>(d)` is provided for convenience, despite
|
||||
`deque` being a __bidirectional_sequence__ only (`at` is supposed to be
|
||||
a __random_access_sequence__ requirement). The runtime complexity of
|
||||
__at__ is constant (see __recursive_inline__). `deque` element access
|
||||
@ -406,7 +406,7 @@ the same properties as the __deque__.
|
||||
[[`T`] [Element type] [ ]]
|
||||
]
|
||||
|
||||
[blurb __note__ `Deque` can be a __deque__, a __front_extended_deque__ or a
|
||||
[note `Deque` can be a __deque__, a __front_extended_deque__ or a
|
||||
__back_extended_deque__]
|
||||
|
||||
[heading Model of]
|
||||
@ -430,7 +430,7 @@ not defined in __bidirectional_sequence__.
|
||||
[[`__at__<N>(d)`] [The Nth element from the beginning of the sequence; see __at__.]]
|
||||
]
|
||||
|
||||
[blurb __note__ See __deque__ for further details.]
|
||||
[note See __deque__ for further details.]
|
||||
|
||||
[heading Example]
|
||||
|
||||
@ -467,7 +467,7 @@ the same properties as the __deque__.
|
||||
[[`T`] [Element type] [ ]]
|
||||
]
|
||||
|
||||
[blurb __note__ `Deque` can be a __deque__, a __back_extended_deque__ or a
|
||||
[note `Deque` can be a __deque__, a __back_extended_deque__ or a
|
||||
__back_extended_deque__]
|
||||
|
||||
[heading Model of]
|
||||
@ -491,7 +491,7 @@ not defined in __bidirectional_sequence__.
|
||||
[[`__at__<N>(d)`] [The Nth element from the beginning of the sequence; see __at__.]]
|
||||
]
|
||||
|
||||
[blurb __note__ See __deque__ for further details.]
|
||||
[note See __deque__ for further details.]
|
||||
|
||||
[heading Example]
|
||||
|
||||
@ -730,7 +730,7 @@ before including any Fusion header to change the default. Example:
|
||||
|
||||
[heading See also]
|
||||
|
||||
__note_boost_ref__
|
||||
__note_ref_wrappers__
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -778,7 +778,7 @@ __result_of_make_cons__`<Car>::type`
|
||||
|
||||
[heading See also]
|
||||
|
||||
__note_boost_ref__
|
||||
__note_ref_wrappers__
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -828,7 +828,7 @@ default. Example:
|
||||
|
||||
[heading See also]
|
||||
|
||||
__note_boost_ref__
|
||||
__note_ref_wrappers__
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -880,7 +880,7 @@ Fusion header to change the default. Example:
|
||||
|
||||
[heading See also]
|
||||
|
||||
__note_boost_ref__
|
||||
__note_ref_wrappers__
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -932,7 +932,7 @@ default. Example:
|
||||
|
||||
[heading See also]
|
||||
|
||||
__note_boost_ref__
|
||||
__note_ref_wrappers__
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -990,7 +990,7 @@ default. Example:
|
||||
|
||||
[heading See also]
|
||||
|
||||
__note_boost_ref__, __fusion_pair__
|
||||
__note_ref_wrappers__, __fusion_pair__
|
||||
|
||||
[endsect]
|
||||
|
||||
|
@ -931,11 +931,11 @@ reference. Const qualification is preserved and propagated appropriately
|
||||
the target function object is const - or, in case the target function object
|
||||
is held by value, the adapter is const).
|
||||
|
||||
[blurb __note__ For Microsoft Visual C++ 7.1 (Visual Studio 2003) the detection
|
||||
[note For Microsoft Visual C++ 7.1 (Visual Studio 2003) the detection
|
||||
of the Function Object's const qualification easily causes an internal error.
|
||||
Therefore the adapter is always treated as if it was const. ]
|
||||
|
||||
[blurb __tip__ If the type sequence passed to this template contains
|
||||
[tip If the type sequence passed to this template contains
|
||||
non-reference elements, the element is copied only once - the call operator's
|
||||
signature is optimized automatically to avoid by-value parameters.]
|
||||
|
||||
|
@ -20,11 +20,6 @@
|
||||
]
|
||||
]
|
||||
|
||||
[def __note__ [$images/note.png]]
|
||||
[def __alert__ [$images/alert.png]]
|
||||
[def __tip__ [$images/tip.png]]
|
||||
[def __caution__ [$images/caution.png]]
|
||||
|
||||
[def __spirit__ [@http://spirit.sourceforge.net Spirit]]
|
||||
[def __phoenix__ [@http://www.boost.org/libs/phoenix/index.html Phoenix]]
|
||||
[def __mpl__ [@http://www.boost.org/libs/mpl/index.html MPL]]
|
||||
@ -55,6 +50,7 @@
|
||||
[def __boost_func_factory__ [@http://www.boost.org/libs/functional/factory/doc/html/index.html Boost.Functional/Factory]]
|
||||
[def __boost_func_hash__ [@http://www.boost.org/doc/html/hash.html Boost.Functional/Hash]]
|
||||
[def __std_pair_doc__ [@http://www.sgi.com/tech/stl/pair.html `std::pair`]]
|
||||
[def __std_tuple_doc__ [@http://en.cppreference.com/w/cpp/utility/tuple `std::tuple`]]
|
||||
[def __std_plus_doc__ [@http://www.sgi.com/tech/stl/plus.html `std::plus`]]
|
||||
[def __std_minus_doc__ [@http://www.sgi.com/tech/stl/minus.html `std::minus`]]
|
||||
|
||||
@ -331,7 +327,7 @@
|
||||
[def __tag_dispatching__ [link fusion.notes.tag_dispatching /tag dispatching/]]
|
||||
[def __element_conversion__ [link fusion.notes.element_conversion /element conversion/]]
|
||||
[def __see_element_conversion__ [link fusion.notes.element_conversion /see element conversion/]]
|
||||
[def __note_boost_ref__ [link fusion.notes.boost__ref `boost::ref`]]
|
||||
[def __note_ref_wrappers__ [link fusion.notes.reference_wrappers `Reference Wrappers`]]
|
||||
|
||||
[def __quick_start__ [link fusion.quick_start Quick Start]]
|
||||
[def __organization__ [link fusion.organization Organization]]
|
||||
|
Before Width: | Height: | Size: 603 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 358 B |
Before Width: | Height: | Size: 722 B |
Before Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 658 B |
Before Width: | Height: | Size: 334 B |
Before Width: | Height: | Size: 867 B |
Before Width: | Height: | Size: 640 B |
Before Width: | Height: | Size: 370 B |
Before Width: | Height: | Size: 1.2 KiB |
@ -167,6 +167,7 @@
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="fusion/adapted/array.html">Array</a></span></dt>
|
||||
<dt><span class="section"><a href="fusion/adapted/std__pair.html">std::pair</a></span></dt>
|
||||
<dt><span class="section"><a href="fusion/adapted/std__tuple.html">std::tuple</a></span></dt>
|
||||
<dt><span class="section"><a href="fusion/adapted/mpl_sequence.html">mpl sequence</a></span></dt>
|
||||
<dt><span class="section"><a href="fusion/adapted/boost__array.html">boost::array</a></span></dt>
|
||||
<dt><span class="section"><a href="fusion/adapted/boost__tuple.html">boost::tuple</a></span></dt>
|
||||
|
@ -100,7 +100,7 @@ Array arguments are deduced to reference to const types. For example
|
||||
[footnote Note that the type of a string literal is an array of const
|
||||
characters, not `const char*`. To get __make_list__ to create a __list__
|
||||
with an element of a non-const array type one must use the `ref` wrapper
|
||||
(see __note_boost_ref__).]:
|
||||
(see __note_ref_wrappers__).]:
|
||||
|
||||
__make_list__("Donald", "Daisy")
|
||||
|
||||
|
@ -49,16 +49,11 @@ and traversal routines. It was an instant /AHA!/ moment.
|
||||
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.]]
|
||||
]
|
||||
[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__.
|
||||
|
@ -255,7 +255,7 @@ any Random Access Sequence the following must be met:
|
||||
[[`__result_of_value_at_c__<S, N>::type`] [Amortized constant time]]
|
||||
]
|
||||
|
||||
[blurb __note__ `__result_of_at__<S, M>` returns the actual type returned by
|
||||
[note `__result_of_at__<S, M>` returns the actual type returned by
|
||||
`__at__<M>(s)`. In most cases, this is a reference. Hence, there is no way to
|
||||
know the exact element type using `__result_of_at__<S, M>`.The element at `M`
|
||||
may actually be a reference to begin with. For this purpose, you can use
|
||||
@ -330,7 +330,7 @@ For any Associative Sequence the following expressions must be valid:
|
||||
[[`__result_of_value_at_key__<S, K>::type`] [Amortized constant time]]
|
||||
]
|
||||
|
||||
[blurb __note__ `__result_of_at_key__<S, K>` returns the actual type returned
|
||||
[note `__result_of_at_key__<S, K>` returns the actual type returned
|
||||
by `__at_key__<K>(s)`. In most cases, this is a reference. Hence, there is no
|
||||
way to know the exact element type using `__result_of_at_key__<S, K>`.The
|
||||
element at `K` may actually be a reference to begin with. For this purpose,
|
||||
|
@ -254,7 +254,7 @@ Metafunction to apply __element_conversion__ to the full argument type.
|
||||
|
||||
It removes references to `const`, references to array types are kept, even
|
||||
if the array is `const`. Reference wrappers are removed (see
|
||||
__note_boost_ref__)[footnote Since C++11, the standard reference wrappers
|
||||
__note_ref_wrappers__)[footnote Since C++11, the standard reference wrappers
|
||||
are also removed.].
|
||||
|
||||
[heading Header]
|
||||
|