diff --git a/doc/refmanual.html b/doc/refmanual.html index 4c36069..ec6e2d5 100644 --- a/doc/refmanual.html +++ b/doc/refmanual.html @@ -3,7 +3,7 @@
- +diff --git a/doc/refmanual/acknowledgements.html b/doc/refmanual/acknowledgements.html index 81b7bfd..e4eff30 100644 --- a/doc/refmanual/acknowledgements.html +++ b/doc/refmanual/acknowledgements.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Acknowledgements @@ -12,7 +12,7 @@Front Page / Acknowledgements -diff --git a/doc/refmanual/advance.html b/doc/refmanual/advance.html index e99f57f..01accf4 100644 --- a/doc/refmanual/advance.html +++ b/doc/refmanual/advance.html @@ -3,7 +3,7 @@ - +Acknowledgements
+Acknowledgements
The format and language of this reference documentation has been greatly influenced by the SGI's Standard Template Library Programmer's Guide.
The MPL Reference Manual: advance @@ -12,7 +12,7 @@Front Page / Iterators / Iterator Metafunctions / advance -advance
+advance
Description
-Moves Iterator by the distance N. For bidirectional and -random access iterators, the distance may be negative.
+Moves Iterator by the distance N. For bidirectional and +random access iterators, the distance may be negative.
Header
diff --git a/doc/refmanual/algorithms-concepts.html b/doc/refmanual/algorithms-concepts.html index 041e697..021249b 100644 --- a/doc/refmanual/algorithms-concepts.html +++ b/doc/refmanual/algorithms-concepts.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Concepts @@ -12,11 +12,11 @@Front Page / Algorithms / Concepts diff --git a/doc/refmanual/algorithms.html b/doc/refmanual/algorithms.html index df6834a..acc3fe5 100644 --- a/doc/refmanual/algorithms.html +++ b/doc/refmanual/algorithms.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Algorithms @@ -12,7 +12,7 @@Front Page / Algorithms -diff --git a/doc/refmanual/always.html b/doc/refmanual/always.html index 1cd8123..00273ce 100644 --- a/doc/refmanual/always.html +++ b/doc/refmanual/always.html @@ -3,7 +3,7 @@ - +Algorithms
+Algorithms
The MPL provides a broad range of fundamental algorithms aimed to satisfy the majority of sequential compile-time data processing needs. The algorithms include compile-time counterparts @@ -44,12 +44,12 @@ allowing for a wider range of efficient transformations — a common functionality documented by the Reversible Algorithm concept.
The MPL Reference Manual: always @@ -12,7 +12,7 @@Front Page / Metafunctions / Miscellaneous / always -always
+always
Synopsis
diff --git a/doc/refmanual/and.html b/doc/refmanual/and.html index 16536de..91e9650 100644 --- a/doc/refmanual/and.html +++ b/doc/refmanual/and.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: and_ @@ -12,7 +12,7 @@Front Page / Metafunctions / Logical Operations / and_ -and_
+and_
Synopsis
diff --git a/doc/refmanual/apply-wrap.html b/doc/refmanual/apply-wrap.html index d4d11a6..c455eb6 100644 --- a/doc/refmanual/apply-wrap.html +++ b/doc/refmanual/apply-wrap.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: apply_wrap @@ -12,7 +12,7 @@Front Page / Metafunctions / Invocation / apply_wrap -apply_wrap
+apply_wrap
Synopsis
diff --git a/doc/refmanual/apply.html b/doc/refmanual/apply.html index 7f03f73..4a286d0 100644 --- a/doc/refmanual/apply.html +++ b/doc/refmanual/apply.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: apply @@ -12,7 +12,7 @@Front Page / Metafunctions / Invocation / apply -apply
+apply
Synopsis
diff --git a/doc/refmanual/arg.html b/doc/refmanual/arg.html index f4ff6f4..3be78e9 100644 --- a/doc/refmanual/arg.html +++ b/doc/refmanual/arg.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: arg @@ -12,7 +12,7 @@Front Page / Metafunctions / Composition and Argument Binding / arg -arg
+arg
Synopsis
diff --git a/doc/refmanual/arithmetic-operations.html b/doc/refmanual/arithmetic-operations.html index d8f3d82..2736b8c 100644 --- a/doc/refmanual/arithmetic-operations.html +++ b/doc/refmanual/arithmetic-operations.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Arithmetic Operations @@ -12,15 +12,15 @@Front Page / Metafunctions / Arithmetic Operations diff --git a/doc/refmanual/assert-msg.html b/doc/refmanual/assert-msg.html index 2e7f8fa..6bd702d 100644 --- a/doc/refmanual/assert-msg.html +++ b/doc/refmanual/assert-msg.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: BOOST_MPL_ASSERT_MSG @@ -12,7 +12,7 @@Front Page / Macros / Asserts / BOOST_MPL_ASSERT_MSG -BOOST_MPL_ASSERT_MSG
+BOOST_MPL_ASSERT_MSG
Synopsis
diff --git a/doc/refmanual/assert-not.html b/doc/refmanual/assert-not.html index ca1b005..5aebcd7 100644 --- a/doc/refmanual/assert-not.html +++ b/doc/refmanual/assert-not.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: BOOST_MPL_ASSERT_NOT @@ -12,7 +12,7 @@Front Page / Macros / Asserts / BOOST_MPL_ASSERT_NOT -BOOST_MPL_ASSERT_NOT
+BOOST_MPL_ASSERT_NOT
Synopsis
diff --git a/doc/refmanual/assert-relation.html b/doc/refmanual/assert-relation.html index e948c03..4597172 100644 --- a/doc/refmanual/assert-relation.html +++ b/doc/refmanual/assert-relation.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: BOOST_MPL_ASSERT_RELATION @@ -12,7 +12,7 @@Front Page / Macros / Asserts / BOOST_MPL_ASSERT_RELATION -BOOST_MPL_ASSERT_RELATION
+BOOST_MPL_ASSERT_RELATION
Synopsis
diff --git a/doc/refmanual/assert.html b/doc/refmanual/assert.html index 7992b52..a33319e 100644 --- a/doc/refmanual/assert.html +++ b/doc/refmanual/assert.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: BOOST_MPL_ASSERT @@ -12,7 +12,7 @@Front Page / Macros / Asserts / BOOST_MPL_ASSERT -BOOST_MPL_ASSERT
+BOOST_MPL_ASSERT
Synopsis
diff --git a/doc/refmanual/asserts.html b/doc/refmanual/asserts.html index ac4e869..3430de2 100644 --- a/doc/refmanual/asserts.html +++ b/doc/refmanual/asserts.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Asserts @@ -12,17 +12,17 @@Front Page / Macros / Asserts -diff --git a/doc/refmanual/associative-sequence.html b/doc/refmanual/associative-sequence.html index 84812bf..4478043 100644 --- a/doc/refmanual/associative-sequence.html +++ b/doc/refmanual/associative-sequence.html @@ -3,7 +3,7 @@ - +Asserts
+Asserts
The MPL supplies a suite of static assertion macros that are specifically designed to generate maximally useful and informative error messages within the diagnostic capabilities of each compiler.
All assert macros can be used at class, function, or namespace scope.
The MPL Reference Manual: Associative Sequence @@ -12,7 +12,7 @@Front Page / Sequences / Concepts / Associative Sequence -Associative Sequence
+Associative Sequence
Description
An Associative Sequence is a Forward Sequence that allows efficient retrieval of diff --git a/doc/refmanual/at-c.html b/doc/refmanual/at-c.html index fd7f73d..53a9589 100644 --- a/doc/refmanual/at-c.html +++ b/doc/refmanual/at-c.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: at_c @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / at_c -at_c
+at_c
Synopsis
diff --git a/doc/refmanual/at.html b/doc/refmanual/at.html index b342706..48dbc4a 100644 --- a/doc/refmanual/at.html +++ b/doc/refmanual/at.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: at @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / at -at
+at
Synopsis
diff --git a/doc/refmanual/aux-lambda-support.html b/doc/refmanual/aux-lambda-support.html index 8f72f85..e74dd03 100644 --- a/doc/refmanual/aux-lambda-support.html +++ b/doc/refmanual/aux-lambda-support.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: BOOST_MPL_AUX_LAMBDA_SUPPORT @@ -12,8 +12,8 @@Front Page / Macros / Broken Compiler Workarounds / BOOST_MPL_AUX_LAMBDA_SUPPORT -BOOST_MPL_AUX_LAMBDA_SUPPORT
-+BOOST_MPL_AUX_LAMBDA_SUPPORT
+-Synopsis
#define BOOST_MPL_AUX_LAMBDA_SUPPORT(arity, fun, params) \ @@ -21,19 +21,19 @@ /**/+-Description
Enables metafunction fun for the use in Lambda Expressions on compilers that don't support partial template specialization or/and template template parameters. Expands to nothing on conforming compilers.
+-Header
#include <boost/mpl/aux_/lambda_support.hpp>+-Parameters
@@ -65,7 +65,7 @@ their original order, including the defaults. +-Expression semantics
For any integral constant n, a Metafunction fun, and arbitrary types A1,... An:
@@ -93,7 +93,7 @@ expands to an unspecified token sequence enabling
+-Example
template< typename T, typename U = int > struct f @@ -107,7 +107,7 @@ typedef apply< BOOST_MPL_ASSERT(( is_same< r, char[sizeof(long)] > ));+ diff --git a/doc/refmanual/back-extensible-sequence.html b/doc/refmanual/back-extensible-sequence.html index 1cbbb29..a8302b6 100644 --- a/doc/refmanual/back-extensible-sequence.html +++ b/doc/refmanual/back-extensible-sequence.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Back Extensible Sequence @@ -12,7 +12,7 @@Front Page / Sequences / Concepts / Back Extensible Sequence -Back Extensible Sequence
+Back Extensible Sequence
Description
A Back Extensible Sequence is an Extensible Sequence that supports amortized constant diff --git a/doc/refmanual/back-inserter.html b/doc/refmanual/back-inserter.html index 150a4f8..da825c1 100644 --- a/doc/refmanual/back-inserter.html +++ b/doc/refmanual/back-inserter.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: back_inserter @@ -12,7 +12,7 @@Front Page / Algorithms / Inserters / back_inserter -back_inserter
+back_inserter
Synopsis
diff --git a/doc/refmanual/back.html b/doc/refmanual/back.html index f5146b1..4f67bdf 100644 --- a/doc/refmanual/back.html +++ b/doc/refmanual/back.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: back @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / back -back
+back
Synopsis
diff --git a/doc/refmanual/begin.html b/doc/refmanual/begin.html index c42c277..9753362 100644 --- a/doc/refmanual/begin.html +++ b/doc/refmanual/begin.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: begin @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / begin -begin
+begin
Synopsis
diff --git a/doc/refmanual/bidirectional-iterator.html b/doc/refmanual/bidirectional-iterator.html index 1df9bde..e144a55 100644 --- a/doc/refmanual/bidirectional-iterator.html +++ b/doc/refmanual/bidirectional-iterator.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Bidirectional Iterator @@ -12,7 +12,7 @@Front Page / Iterators / Concepts / Bidirectional Iterator -Bidirectional Iterator
+Bidirectional Iterator
Description
A Bidirectional Iterator is a Forward Iterator that provides a way to diff --git a/doc/refmanual/bidirectional-sequence.html b/doc/refmanual/bidirectional-sequence.html index 57e7bbb..522799f 100644 --- a/doc/refmanual/bidirectional-sequence.html +++ b/doc/refmanual/bidirectional-sequence.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: Bidirectional Sequence @@ -12,7 +12,7 @@Front Page / Sequences / Concepts / Bidirectional Sequence -Bidirectional Sequence
+Bidirectional Sequence
Description
A Bidirectional Sequence is a Forward Sequence whose iterators model diff --git a/doc/refmanual/bind.html b/doc/refmanual/bind.html index 0c0f9bf..34ceb92 100644 --- a/doc/refmanual/bind.html +++ b/doc/refmanual/bind.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: bind @@ -12,7 +12,7 @@Front Page / Metafunctions / Composition and Argument Binding / bind -bind
+bind
Synopsis
diff --git a/doc/refmanual/bitand.html b/doc/refmanual/bitand.html index 6422c6e..3436830 100644 --- a/doc/refmanual/bitand.html +++ b/doc/refmanual/bitand.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: bitand_ @@ -12,7 +12,7 @@Front Page / Metafunctions / Bitwise Operations / bitand_ -bitand_
+bitand_
Synopsis
diff --git a/doc/refmanual/bitor.html b/doc/refmanual/bitor.html index 44388a1..8202356 100644 --- a/doc/refmanual/bitor.html +++ b/doc/refmanual/bitor.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: bitor_ @@ -12,7 +12,7 @@Front Page / Metafunctions / Bitwise Operations / bitor_ -bitor_
+bitor_
Synopsis
diff --git a/doc/refmanual/bitwise-operations.html b/doc/refmanual/bitwise-operations.html index 0bf1fc7..1f2962f 100644 --- a/doc/refmanual/bitwise-operations.html +++ b/doc/refmanual/bitwise-operations.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Bitwise Operations @@ -12,14 +12,14 @@Front Page / Metafunctions / Bitwise Operations diff --git a/doc/refmanual/bitxor.html b/doc/refmanual/bitxor.html index 84b1a5e..9a05d74 100644 --- a/doc/refmanual/bitxor.html +++ b/doc/refmanual/bitxor.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: bitxor_ @@ -12,7 +12,7 @@Front Page / Metafunctions / Bitwise Operations / bitxor_ -bitxor_
+bitxor_
Synopsis
diff --git a/doc/refmanual/bool.html b/doc/refmanual/bool.html index 86a41ae..b9f11c3 100644 --- a/doc/refmanual/bool.html +++ b/doc/refmanual/bool.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: bool_ @@ -12,7 +12,7 @@Front Page / Data Types / Numeric / bool_ -bool_
+bool_
Synopsis
diff --git a/doc/refmanual/broken-compiler-workarounds.html b/doc/refmanual/broken-compiler-workarounds.html index 26ccdc0..0b53e86 100644 --- a/doc/refmanual/broken-compiler-workarounds.html +++ b/doc/refmanual/broken-compiler-workarounds.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Broken Compiler Workarounds @@ -12,10 +12,10 @@Front Page / Macros / Broken Compiler Workarounds diff --git a/doc/refmanual/c-str.html b/doc/refmanual/c-str.html index 1bfba1e..3540773 100644 --- a/doc/refmanual/c-str.html +++ b/doc/refmanual/c-str.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: c_str @@ -12,7 +12,7 @@Front Page / Metafunctions / String Operations / c_str -c_str
+c_str
Synopsis
diff --git a/doc/refmanual/categorized-index-concepts.html b/doc/refmanual/categorized-index-concepts.html index a7fc505..d70d362 100644 --- a/doc/refmanual/categorized-index-concepts.html +++ b/doc/refmanual/categorized-index-concepts.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Concepts @@ -11,8 +11,8 @@-
Front Page / Categorized Index / Concepts -Concepts
++Concepts
- Associative Sequence
- Back Extensible Sequence
diff --git a/doc/refmanual/categorized-index.html b/doc/refmanual/categorized-index.html index b5ace2a..a0e5f48 100644 --- a/doc/refmanual/categorized-index.html +++ b/doc/refmanual/categorized-index.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Categorized Index @@ -12,10 +12,10 @@Front Page / Categorized Index diff --git a/doc/refmanual/cfg-no-has-xxx-template.html b/doc/refmanual/cfg-no-has-xxx-template.html new file mode 100644 index 0000000..499e548 --- /dev/null +++ b/doc/refmanual/cfg-no-has-xxx-template.html @@ -0,0 +1,39 @@ + + + + + + +The MPL Reference Manual: BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE + + + ++
+ Front Page / Macros / Configuration / BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE +++ + +BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+++Synopsis
++// #define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE ++++ +Description
+BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE is a boolean configuration +macro signaling availability of the BOOST_MPL_HAS_XXX_TEMPLATE_DEF / +BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF introspection macros' +functionality on a particular compiler.
++ diff --git a/doc/refmanual/cfg-no-has-xxx.html b/doc/refmanual/cfg-no-has-xxx.html index f3f8455..faa2d18 100644 --- a/doc/refmanual/cfg-no-has-xxx.html +++ b/doc/refmanual/cfg-no-has-xxx.html @@ -3,38 +3,42 @@ - +
+ The MPL Reference Manual: BOOST_MPL_CFG_NO_HAS_XXX -
+
Front Page / Macros / Configuration / BOOST_MPL_CFG_NO_HAS_XXX -BOOST_MPL_CFG_NO_HAS_XXX
-+BOOST_MPL_CFG_NO_HAS_XXX
+-Synopsis
// #define BOOST_MPL_CFG_NO_HAS_XXX+-Description
BOOST_MPL_CFG_NO_HAS_XXX is an boolean configuration macro signaling availability of the BOOST_MPL_HAS_XXX_TRAIT_DEF / BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF introspection macros' functionality on a particular compiler.
+-
+ diff --git a/doc/refmanual/cfg-no-preprocessed-headers.html b/doc/refmanual/cfg-no-preprocessed-headers.html index fedb49c..49b5ad2 100644 --- a/doc/refmanual/cfg-no-preprocessed-headers.html +++ b/doc/refmanual/cfg-no-preprocessed-headers.html @@ -3,7 +3,7 @@ - +
The MPL Reference Manual: BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS @@ -12,14 +12,14 @@Front Page / Macros / Configuration / BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-+BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+-Synopsis
// #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS+-Description
BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS is an boolean configuration macro regulating library's internal use of preprocessed headers. When defined, it @@ -32,7 +32,7 @@ To change the default configuration, define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS before including any library header.
+See also
diff --git a/doc/refmanual/char.html b/doc/refmanual/char.html index 56c52f0..ee1fb4b 100644 --- a/doc/refmanual/char.html +++ b/doc/refmanual/char.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: char_ @@ -12,7 +12,7 @@Front Page / Data Types / Numeric / char_ -char_
+char_
Synopsis
diff --git a/doc/refmanual/classes.html b/doc/refmanual/classes.html index a7f370e..53aba44 100644 --- a/doc/refmanual/classes.html +++ b/doc/refmanual/classes.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Classes @@ -12,23 +12,23 @@Front Page / Sequences / Classes -diff --git a/doc/refmanual/clear.html b/doc/refmanual/clear.html index 6414fd3..a997ac2 100644 --- a/doc/refmanual/clear.html +++ b/doc/refmanual/clear.html @@ -3,7 +3,7 @@ - +Classes
+Classes
The MPL provides a large number of predefined general-purpose sequence classes covering most of the typical metaprogramming needs out-of-box.
The MPL Reference Manual: clear @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / clear -clear
+clear
Synopsis
diff --git a/doc/refmanual/comparisons.html b/doc/refmanual/comparisons.html index 8d63c6b..5b04623 100644 --- a/doc/refmanual/comparisons.html +++ b/doc/refmanual/comparisons.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Comparisons @@ -12,15 +12,15 @@Front Page / Metafunctions / Comparisons diff --git a/doc/refmanual/components.html b/doc/refmanual/components.html index 0e059f8..7fc57fe 100644 --- a/doc/refmanual/components.html +++ b/doc/refmanual/components.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Components @@ -12,7 +12,7 @@Front Page / Categorized Index / Components -Components
+Components
- BOOST_MPL_ASSERT
- BOOST_MPL_ASSERT_MSG
@@ -20,7 +20,10 @@- BOOST_MPL_ASSERT_RELATION
- BOOST_MPL_AUX_LAMBDA_SUPPORT
- BOOST_MPL_CFG_NO_HAS_XXX
+- BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
- BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+- BOOST_MPL_HAS_XXX_TEMPLATE_DEF
+- BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF
- BOOST_MPL_HAS_XXX_TRAIT_DEF
- BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF
- BOOST_MPL_LIMIT_LIST_SIZE
diff --git a/doc/refmanual/composition-and-argument-binding.html b/doc/refmanual/composition-and-argument-binding.html index 7467046..f5b1e37 100644 --- a/doc/refmanual/composition-and-argument-binding.html +++ b/doc/refmanual/composition-and-argument-binding.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Composition and Argument Binding @@ -12,15 +12,15 @@Front Page / Metafunctions / Composition and Argument Binding diff --git a/doc/refmanual/concepts.html b/doc/refmanual/concepts.html index a5b78c8..a8f6f22 100644 --- a/doc/refmanual/concepts.html +++ b/doc/refmanual/concepts.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Concepts @@ -12,7 +12,7 @@Front Page / Sequences / Concepts -diff --git a/doc/refmanual/configuration.html b/doc/refmanual/configuration.html index 35a5461..6ac1c72 100644 --- a/doc/refmanual/configuration.html +++ b/doc/refmanual/configuration.html @@ -3,7 +3,7 @@ - +Concepts
+Concepts
The taxonomy of sequence concepts in MPL parallels the taxonomy of the MPL Iterators, with two additional classification dimensions: extensibility and associativeness.
@@ -37,16 +37,16 @@ are not applicable in generic contexts, but are used to group together the common parts of different sequence classes' specifications. -->-
- Forward Sequence
-- Bidirectional Sequence
-- Random Access Sequence
-- Extensible Sequence
-- Front Extensible Sequence
-- Back Extensible Sequence
-- Associative Sequence
-- Extensible Associative Sequence
-- Integral Sequence Wrapper
-- Variadic Sequence
+- Forward Sequence
+- Bidirectional Sequence
+- Random Access Sequence
+- Extensible Sequence
+- Front Extensible Sequence
+- Back Extensible Sequence
+- Associative Sequence
+- Extensible Associative Sequence
+- Integral Sequence Wrapper
+- Variadic Sequence
The MPL Reference Manual: Configuration @@ -12,18 +12,19 @@Front Page / Macros / Configuration -diff --git a/doc/refmanual/contains.html b/doc/refmanual/contains.html index 9e26f53..afc44f1 100644 --- a/doc/refmanual/contains.html +++ b/doc/refmanual/contains.html @@ -3,7 +3,7 @@ - +Configuration
+Configuration
-
- BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-- BOOST_MPL_CFG_NO_HAS_XXX
-- BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-- BOOST_MPL_LIMIT_VECTOR_SIZE
-- BOOST_MPL_LIMIT_LIST_SIZE
-- BOOST_MPL_LIMIT_SET_SIZE
-- BOOST_MPL_LIMIT_MAP_SIZE
-- BOOST_MPL_LIMIT_STRING_SIZE
-- BOOST_MPL_LIMIT_UNROLLING
+- BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
+- BOOST_MPL_CFG_NO_HAS_XXX
+- BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+- BOOST_MPL_LIMIT_METAFUNCTION_ARITY
+- BOOST_MPL_LIMIT_VECTOR_SIZE
+- BOOST_MPL_LIMIT_LIST_SIZE
+- BOOST_MPL_LIMIT_SET_SIZE
+- BOOST_MPL_LIMIT_MAP_SIZE
+- BOOST_MPL_LIMIT_STRING_SIZE
+- BOOST_MPL_LIMIT_UNROLLING
The MPL Reference Manual: contains @@ -12,7 +12,7 @@Front Page / Algorithms / Querying Algorithms / contains -contains
+contains
Synopsis
diff --git a/doc/refmanual/copy-if.html b/doc/refmanual/copy-if.html index b200b20..e737369 100644 --- a/doc/refmanual/copy-if.html +++ b/doc/refmanual/copy-if.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: copy_if @@ -12,7 +12,7 @@Front Page / Algorithms / Transformation Algorithms / copy_if -copy_if
+copy_if
Synopsis
diff --git a/doc/refmanual/copy.html b/doc/refmanual/copy.html index 5d1f3fd..a005dc2 100644 --- a/doc/refmanual/copy.html +++ b/doc/refmanual/copy.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: copy @@ -12,7 +12,7 @@Front Page / Algorithms / Transformation Algorithms / copy -copy
+copy
Synopsis
diff --git a/doc/refmanual/count-if.html b/doc/refmanual/count-if.html index 51b3139..1e56eb4 100644 --- a/doc/refmanual/count-if.html +++ b/doc/refmanual/count-if.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: count_if @@ -12,7 +12,7 @@Front Page / Algorithms / Querying Algorithms / count_if -count_if
+count_if
Synopsis
diff --git a/doc/refmanual/count.html b/doc/refmanual/count.html index d44e998..b9a707f 100644 --- a/doc/refmanual/count.html +++ b/doc/refmanual/count.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: count @@ -12,7 +12,7 @@Front Page / Algorithms / Querying Algorithms / count -count
+count
Synopsis
diff --git a/doc/refmanual/data-types-concepts.html b/doc/refmanual/data-types-concepts.html index 4d1cb26..830093d 100644 --- a/doc/refmanual/data-types-concepts.html +++ b/doc/refmanual/data-types-concepts.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Concepts @@ -12,10 +12,10 @@Front Page / Data Types / Concepts diff --git a/doc/refmanual/data-types-miscellaneous.html b/doc/refmanual/data-types-miscellaneous.html index d7bd85d..8df6a5b 100644 --- a/doc/refmanual/data-types-miscellaneous.html +++ b/doc/refmanual/data-types-miscellaneous.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Miscellaneous @@ -12,12 +12,12 @@Front Page / Data Types / Miscellaneous diff --git a/doc/refmanual/data-types.html b/doc/refmanual/data-types.html index a7586a8..996671f 100644 --- a/doc/refmanual/data-types.html +++ b/doc/refmanual/data-types.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Data Types @@ -12,11 +12,11 @@Front Page / Data Types diff --git a/doc/refmanual/deque.html b/doc/refmanual/deque.html index c4384ba..4c09160 100644 --- a/doc/refmanual/deque.html +++ b/doc/refmanual/deque.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: deque @@ -12,10 +12,10 @@Front Page / Sequences / Classes / deque -deque
+deque
Description
-deque is a variadic, random access, extensible sequence of types that +
deque is a variadic, random access, extensible sequence of types that supports constant-time insertion and removal of elements at both ends, and linear-time insertion and removal of elements in the middle. In this implementation of the library, deque is a synonym for vector.
diff --git a/doc/refmanual/deref.html b/doc/refmanual/deref.html index f4dd237..3f5d06f 100644 --- a/doc/refmanual/deref.html +++ b/doc/refmanual/deref.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: deref @@ -12,7 +12,7 @@Front Page / Iterators / Iterator Metafunctions / deref -deref
+deref
Synopsis
diff --git a/doc/refmanual/distance.html b/doc/refmanual/distance.html index ac8d196..5fd6afd 100644 --- a/doc/refmanual/distance.html +++ b/doc/refmanual/distance.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: distance @@ -12,7 +12,7 @@Front Page / Iterators / Iterator Metafunctions / distance -distance
+distance
Synopsis
diff --git a/doc/refmanual/divides.html b/doc/refmanual/divides.html index 22e250a..352b440 100644 --- a/doc/refmanual/divides.html +++ b/doc/refmanual/divides.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: divides @@ -12,7 +12,7 @@Front Page / Metafunctions / Arithmetic Operations / divides -divides
+divides
Synopsis
diff --git a/doc/refmanual/empty-base.html b/doc/refmanual/empty-base.html index 26159f3..38fcaea 100644 --- a/doc/refmanual/empty-base.html +++ b/doc/refmanual/empty-base.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: empty_base @@ -12,7 +12,7 @@Front Page / Data Types / Miscellaneous / empty_base -empty_base
+empty_base
Synopsis
diff --git a/doc/refmanual/empty-sequence.html b/doc/refmanual/empty-sequence.html index 132c795..d835a3c 100644 --- a/doc/refmanual/empty-sequence.html +++ b/doc/refmanual/empty-sequence.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: empty_sequence @@ -12,7 +12,7 @@Front Page / Sequences / Views / empty_sequence -empty_sequence
+empty_sequence
Synopsis
diff --git a/doc/refmanual/empty.html b/doc/refmanual/empty.html index 6086b3d..c763e9e 100644 --- a/doc/refmanual/empty.html +++ b/doc/refmanual/empty.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: empty @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / empty -empty
+empty
Synopsis
diff --git a/doc/refmanual/end.html b/doc/refmanual/end.html index 0a5c39c..41bb0dd 100644 --- a/doc/refmanual/end.html +++ b/doc/refmanual/end.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: end @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / end -end
+end
Synopsis
diff --git a/doc/refmanual/equal-to.html b/doc/refmanual/equal-to.html index af51b46..afa2e23 100644 --- a/doc/refmanual/equal-to.html +++ b/doc/refmanual/equal-to.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: equal_to @@ -12,7 +12,7 @@Front Page / Metafunctions / Comparisons / equal_to -equal_to
+equal_to
Synopsis
diff --git a/doc/refmanual/equal.html b/doc/refmanual/equal.html index 5d87931..e57011e 100644 --- a/doc/refmanual/equal.html +++ b/doc/refmanual/equal.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: equal @@ -12,7 +12,7 @@Front Page / Algorithms / Querying Algorithms / equal -equal
+equal
Synopsis
diff --git a/doc/refmanual/erase-key.html b/doc/refmanual/erase-key.html index 7bf1e73..cbdf6e9 100644 --- a/doc/refmanual/erase-key.html +++ b/doc/refmanual/erase-key.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: erase_key @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / erase_key -erase_key
+erase_key
Synopsis
diff --git a/doc/refmanual/erase.html b/doc/refmanual/erase.html index f4804b2..0aab04f 100644 --- a/doc/refmanual/erase.html +++ b/doc/refmanual/erase.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: erase @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / erase -erase
+erase
Synopsis
diff --git a/doc/refmanual/eval-if-c.html b/doc/refmanual/eval-if-c.html index ab8e2cb..93d8678 100644 --- a/doc/refmanual/eval-if-c.html +++ b/doc/refmanual/eval-if-c.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: eval_if_c @@ -12,7 +12,7 @@Front Page / Metafunctions / Type Selection / eval_if_c -eval_if_c
+eval_if_c
Synopsis
diff --git a/doc/refmanual/eval-if.html b/doc/refmanual/eval-if.html index 2db39aa..41d2277 100644 --- a/doc/refmanual/eval-if.html +++ b/doc/refmanual/eval-if.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: eval_if @@ -12,7 +12,7 @@Front Page / Metafunctions / Type Selection / eval_if -eval_if
+eval_if
Synopsis
diff --git a/doc/refmanual/extensible-associative-sequence.html b/doc/refmanual/extensible-associative-sequence.html index 8c5799a..6d8acfe 100644 --- a/doc/refmanual/extensible-associative-sequence.html +++ b/doc/refmanual/extensible-associative-sequence.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Extensible Associative Sequence @@ -12,7 +12,7 @@Front Page / Sequences / Concepts / Extensible Associative Sequence -Extensible Associative Sequence
+Extensible Associative Sequence
Description
An Extensible Associative Sequence is an Associative Sequence that supports diff --git a/doc/refmanual/extensible-sequence.html b/doc/refmanual/extensible-sequence.html index 00f0f13..701228a 100644 --- a/doc/refmanual/extensible-sequence.html +++ b/doc/refmanual/extensible-sequence.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: Extensible Sequence @@ -12,7 +12,7 @@Front Page / Sequences / Concepts / Extensible Sequence -Extensible Sequence
+Extensible Sequence
Description
An Extensible Sequence is a sequence that supports insertion and removal of diff --git a/doc/refmanual/filter-view.html b/doc/refmanual/filter-view.html index c56dfe5..8c4abea 100644 --- a/doc/refmanual/filter-view.html +++ b/doc/refmanual/filter-view.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: filter_view @@ -12,7 +12,7 @@Front Page / Sequences / Views / filter_view -filter_view
+filter_view
Synopsis
diff --git a/doc/refmanual/find-if.html b/doc/refmanual/find-if.html index 80a4150..50f7449 100644 --- a/doc/refmanual/find-if.html +++ b/doc/refmanual/find-if.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: find_if @@ -12,7 +12,7 @@Front Page / Algorithms / Querying Algorithms / find_if -find_if
+find_if
Synopsis
diff --git a/doc/refmanual/find.html b/doc/refmanual/find.html index 47cd578..9f61f61 100644 --- a/doc/refmanual/find.html +++ b/doc/refmanual/find.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: find @@ -12,7 +12,7 @@Front Page / Algorithms / Querying Algorithms / find -find
+find
Synopsis
diff --git a/doc/refmanual/fold.html b/doc/refmanual/fold.html index 0296ce5..a5b1a7f 100644 --- a/doc/refmanual/fold.html +++ b/doc/refmanual/fold.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: fold @@ -12,7 +12,7 @@Front Page / Algorithms / Iteration Algorithms / fold -fold
+fold
Synopsis
diff --git a/doc/refmanual/for-each.html b/doc/refmanual/for-each.html index 8761b4a..fa0759c 100644 --- a/doc/refmanual/for-each.html +++ b/doc/refmanual/for-each.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: for_each @@ -12,7 +12,7 @@Front Page / Algorithms / Runtime Algorithms / for_each -for_each
+for_each
Synopsis
diff --git a/doc/refmanual/forward-iterator.html b/doc/refmanual/forward-iterator.html index 0d193c7..5407fb5 100644 --- a/doc/refmanual/forward-iterator.html +++ b/doc/refmanual/forward-iterator.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Forward Iterator @@ -12,7 +12,7 @@Front Page / Iterators / Concepts / Forward Iterator -Forward Iterator
+Forward Iterator
Description
A Forward Iterator i is a type that represents a positional reference diff --git a/doc/refmanual/forward-sequence.html b/doc/refmanual/forward-sequence.html index 0d20043..ef2e66a 100644 --- a/doc/refmanual/forward-sequence.html +++ b/doc/refmanual/forward-sequence.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: Forward Sequence @@ -12,7 +12,7 @@Front Page / Sequences / Concepts / Forward Sequence -Forward Sequence
+Forward Sequence
Description
A Forward Sequence is an MPL concept representing a compile-time sequence of diff --git a/doc/refmanual/front-extensible-sequence.html b/doc/refmanual/front-extensible-sequence.html index d4c31f6..7f3c38b 100644 --- a/doc/refmanual/front-extensible-sequence.html +++ b/doc/refmanual/front-extensible-sequence.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: Front Extensible Sequence @@ -12,7 +12,7 @@Front Page / Sequences / Concepts / Front Extensible Sequence -Front Extensible Sequence
+Front Extensible Sequence
Description
A Front Extensible Sequence is an Extensible Sequence that supports amortized constant diff --git a/doc/refmanual/front-inserter.html b/doc/refmanual/front-inserter.html index 8cf8513..b4da882 100644 --- a/doc/refmanual/front-inserter.html +++ b/doc/refmanual/front-inserter.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: front_inserter @@ -12,7 +12,7 @@Front Page / Algorithms / Inserters / front_inserter -front_inserter
+front_inserter
Synopsis
diff --git a/doc/refmanual/front.html b/doc/refmanual/front.html index dd9a22f..a528b7c 100644 --- a/doc/refmanual/front.html +++ b/doc/refmanual/front.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: front @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / front -front
+front
Synopsis
diff --git a/doc/refmanual/greater-equal.html b/doc/refmanual/greater-equal.html index ce395cd..8b80c1c 100644 --- a/doc/refmanual/greater-equal.html +++ b/doc/refmanual/greater-equal.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: greater_equal @@ -12,7 +12,7 @@Front Page / Metafunctions / Comparisons / greater_equal -greater_equal
+greater_equal
Synopsis
diff --git a/doc/refmanual/greater.html b/doc/refmanual/greater.html index 4de4977..42f6f7b 100644 --- a/doc/refmanual/greater.html +++ b/doc/refmanual/greater.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: greater @@ -12,7 +12,7 @@Front Page / Metafunctions / Comparisons / greater -greater
+greater
Synopsis
diff --git a/doc/refmanual/has-key.html b/doc/refmanual/has-key.html index 42fc75e..348331a 100644 --- a/doc/refmanual/has-key.html +++ b/doc/refmanual/has-key.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: has_key @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / has_key -has_key
+has_key
-Synopsis
diff --git a/doc/refmanual/has-xxx-template-def.html b/doc/refmanual/has-xxx-template-def.html new file mode 100644 index 0000000..9e4a3cc --- /dev/null +++ b/doc/refmanual/has-xxx-template-def.html @@ -0,0 +1,139 @@ + + + + + + +The MPL Reference Manual: BOOST_MPL_HAS_XXX_TEMPLATE_DEF + + + ++
+ Front Page / Macros / Introspection / BOOST_MPL_HAS_XXX_TEMPLATE_DEF +++ + +BOOST_MPL_HAS_XXX_TEMPLATE_DEF
+++Synopsis
++#define BOOST_MPL_HAS_XXX_TEMPLATE_DEF(name) \ + unspecified token sequence \ +/**/ ++++Description
+Expands into the definition of a boolean Metafunction has_name +such that for any type x has_name<x>::value == true if and +only if x is a class type and has a nested template member +x::template name with no more than +BOOST_MPL_LIMIT_METAFUNCTION_ARITY parameters.
+On deficient compilers not capable of performing the detection, +has_name<x>::value is always false. A boolean configuration +macro, BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE, is provided to signal or +override the "deficient" status of a particular compiler.
+[Note: BOOST_MPL_HAS_XXX_TEMPLATE_DEF is a simplified front end to +the BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF introspection macro — end note]
+++Header
++#include <boost/mpl/has_xxx.hpp> ++++Parameters
++
++ + ++ + + + + + Parameter +Requirement +Description ++ + name +A legal identifier token +A name of the template member being detected. +++Expression semantics
+For any legal C++ identifier name:
++BOOST_MPL_HAS_XXX_TEMPLATE_DEF(name) +++
++ + + + Precondition: + Appears at namespace scope.
++ Return type: + None.
++ + Semantics: + Equivalent to
++BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF( + BOOST_PP_CAT(has_,name), name, false + ) ++++ +Example
++BOOST_MPL_HAS_XXX_TEMPLATE_DEF(xxx) + +struct test1 {}; +struct test2 { void xxx(); }; +struct test3 { int xxx; }; +struct test4 { static int xxx(); }; +struct test5 { typedef int xxx; }; +struct test6 { struct xxx; }; +struct test7 { typedef void (*xxx)(); }; +struct test8 { typedef void (xxx)(); }; +struct test9 { template< class T > struct xxx {}; }; + +BOOST_MPL_ASSERT_NOT(( has_xxx<test1> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test2> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test3> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test4> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test5> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test6> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test7> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test8> )); + +#if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE) +BOOST_MPL_ASSERT(( has_xxx<test9> )); +#endif + +BOOST_MPL_ASSERT(( has_xxx<test9, true_> )); +++ diff --git a/doc/refmanual/has-xxx-template-named-def.html b/doc/refmanual/has-xxx-template-named-def.html new file mode 100644 index 0000000..1bbd880 --- /dev/null +++ b/doc/refmanual/has-xxx-template-named-def.html @@ -0,0 +1,192 @@ + + + + + + +
+ The MPL Reference Manual: BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF + + + ++
+ Front Page / Macros / Introspection / BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF +++ + +BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF
+++Synopsis
++#define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \ + unspecified token sequence \ +/**/ ++++Description
+Expands into the definition of a boolean Metafunction trait such +that for any type x trait<x>::value == true if and only if +x is a class type and has a nested template member x::template +name with no more than BOOST_MPL_LIMIT_METAFUNCTION_ARITY +parameters.
+On deficient compilers not capable of performing the detection, +trait<x>::value always returns a fallback value default_. A +boolean configuration macro, BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE, is +provided to signal or override the "deficient" status of a particular +compiler. [Note: The fallback value can also be provided at the +point of the metafunction invocation; see the Expression semantics +section for details — end note]
+++Header
++#include <boost/mpl/has_xxx.hpp> ++++Parameters
++
++ + ++ + + + + + Parameter +Requirement +Description ++ trait +A legal identifier token +A name of the metafunction to be generated. ++ name +A legal identifier token +A name of the member being detected. ++ + default_ +An boolean constant +A fallback value for the deficient compilers. +++Expression semantics
+For any legal C++ identifiers trait and name, boolean constant +expression c1, boolean Integral Constant c2, and arbitrary +type x:
++BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, c1) +++
++ + + + Precondition: + Appears at namespace scope.
++ Return type: + None.
++ + Semantics: + Expands into an equivalent of the following class template +definition
++template< + typename X + , typename fallback = boost::mpl::bool_<c1> +> +struct trait +{ + // unspecified + // ... +}; ++where trait is a boolean Metafunction with the following +semantics:
++typedef trait<x>::type r; +++
++ + + + Return type: Integral Constant. ++ + Semantics: If BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE is defined, r::value +== c1; otherwise, r::value == true if and only if x +is a class type that has a nested template member x::template +name with no more than BOOST_MPL_LIMIT_METAFUNCTION_ARITY. ++typedef trait< x, c2 >::type r; +++
++ + + + Return type: + ++ + Semantics: + If BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE is defined, r::value +== c2::value; otherwise, equivalent to
++typedef trait<x>::type r; ++++ +Example
++BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF( + has_xxx, xxx, false +) + +struct test1 {}; +struct test2 { void xxx(); }; +struct test3 { int xxx; }; +struct test4 { static int xxx(); }; +struct test5 { typedef int xxx; }; +struct test6 { struct xxx; }; +struct test7 { typedef void (*xxx)(); }; +struct test8 { typedef void (xxx)(); }; +struct test9 { template< class T > struct xxx {}; }; + +BOOST_MPL_ASSERT_NOT(( has_xxx<test1> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test2> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test3> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test4> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test5> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test6> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test7> )); +BOOST_MPL_ASSERT_NOT(( has_xxx<test8> )); + +#if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE) +BOOST_MPL_ASSERT(( has_xxx<test9> )); +#endif + +BOOST_MPL_ASSERT(( has_xxx<test9, true_> )); +++ diff --git a/doc/refmanual/has-xxx-trait-def.html b/doc/refmanual/has-xxx-trait-def.html index 2f071eb..c98f5fb 100644 --- a/doc/refmanual/has-xxx-trait-def.html +++ b/doc/refmanual/has-xxx-trait-def.html @@ -3,17 +3,17 @@ - +
+ The MPL Reference Manual: BOOST_MPL_HAS_XXX_TRAIT_DEF -
+
Front Page / Macros / Introspection / BOOST_MPL_HAS_XXX_TRAIT_DEF -BOOST_MPL_HAS_XXX_TRAIT_DEF
-+BOOST_MPL_HAS_XXX_TRAIT_DEF
+-Synopsis
#define BOOST_MPL_HAS_XXX_TRAIT_DEF(name) \ @@ -21,7 +21,7 @@ /**/+-Description
Expands into a definition of a boolean unary Metafunction has_name such that for any type x has_name<x>::value == true if and only @@ -33,13 +33,13 @@ the "deficient" status of a particular compiler.
[Note: BOOST_MPL_HAS_XXX_TRAIT_DEF is a simplified front end to the BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF introspection macro — end note]
+-Header
#include <boost/mpl/has_xxx.hpp>+-Parameters
@@ -61,7 +61,7 @@ the BOOST_MP ++-Example
BOOST_MPL_HAS_XXX_TRAIT_DEF(xxx) @@ -122,7 +122,7 @@ struct test9 { typedef void (xxx)(); }; BOOST_MPL_ASSERT(( has_xxx<test9,true_> ));+-See also
Macros, BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF, BOOST_MPL_CFG_NO_HAS_XXX
@@ -130,7 +130,7 @@ struct test9 { typedef void (xxx)(); };
+ diff --git a/doc/refmanual/has-xxx-trait-named-def.html b/doc/refmanual/has-xxx-trait-named-def.html index 73dc0e7..1cd41bd 100644 --- a/doc/refmanual/has-xxx-trait-named-def.html +++ b/doc/refmanual/has-xxx-trait-named-def.html @@ -3,7 +3,7 @@ - +
The MPL Reference Manual: BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF @@ -12,8 +12,8 @@Front Page / Macros / Introspection / BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF
-+BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF
+-Synopsis
#define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ @@ -21,7 +21,7 @@ /**/+-Description
Expands into a definition of a boolean unary Metafunction trait such that for any type x trait<x>::value == true if and only @@ -34,13 +34,13 @@ to signal or override the "deficient" status of a particular compiler. metafunction invocation; see the Expression semantics section for details — end note]
+-Header
#include <boost/mpl/has_xxx.hpp>+-Parameters
@@ -70,7 +70,7 @@ details — end note] +-Expression semantics
For any legal C++ identifiers trait and name, boolean constant expression c1, boolean Integral Constant c2, and arbitrary type x:
@@ -136,7 +136,7 @@ typedef trait<x>::type r;+-Example
BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_xxx, xxx, false) @@ -170,7 +170,7 @@ struct test9 { typedef void (xxx)(); }; BOOST_MPL_ASSERT(( has_xxx<test9,true_> ));+ diff --git a/doc/refmanual/identity.html b/doc/refmanual/identity.html index b3a377c..ff8bb2e 100644 --- a/doc/refmanual/identity.html +++ b/doc/refmanual/identity.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: identity @@ -12,7 +12,7 @@Front Page / Metafunctions / Miscellaneous / identity diff --git a/doc/refmanual/if-c.html b/doc/refmanual/if-c.html index 2edb665..9d4ff73 100644 --- a/doc/refmanual/if-c.html +++ b/doc/refmanual/if-c.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: if_c @@ -12,7 +12,7 @@Front Page / Metafunctions / Type Selection / if_c -if_c
+if_c
Synopsis
diff --git a/doc/refmanual/if.html b/doc/refmanual/if.html index f4c78af..53f953f 100644 --- a/doc/refmanual/if.html +++ b/doc/refmanual/if.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: if_ @@ -12,7 +12,7 @@Front Page / Metafunctions / Type Selection / if_ -if_
+if_
Synopsis
diff --git a/doc/refmanual/inherit-linearly.html b/doc/refmanual/inherit-linearly.html index a41c4b5..a458ba5 100644 --- a/doc/refmanual/inherit-linearly.html +++ b/doc/refmanual/inherit-linearly.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: inherit_linearly @@ -12,7 +12,7 @@Front Page / Metafunctions / Miscellaneous / inherit_linearly -inherit_linearly
+inherit_linearly
Synopsis
diff --git a/doc/refmanual/inherit.html b/doc/refmanual/inherit.html index 7ac3c12..0056aba 100644 --- a/doc/refmanual/inherit.html +++ b/doc/refmanual/inherit.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: inherit @@ -12,7 +12,7 @@Front Page / Metafunctions / Miscellaneous / inherit -inherit
+inherit
Synopsis
diff --git a/doc/refmanual/insert-range.html b/doc/refmanual/insert-range.html index 8effef0..2d48f3a 100644 --- a/doc/refmanual/insert-range.html +++ b/doc/refmanual/insert-range.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: insert_range @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / insert_range -insert_range
+insert_range
Synopsis
diff --git a/doc/refmanual/insert.html b/doc/refmanual/insert.html index 60d3df9..5e37f3c 100644 --- a/doc/refmanual/insert.html +++ b/doc/refmanual/insert.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: insert @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / insert -insert
+insert
Synopsis
diff --git a/doc/refmanual/inserter-class.html b/doc/refmanual/inserter-class.html index b19e5b0..bf59252 100644 --- a/doc/refmanual/inserter-class.html +++ b/doc/refmanual/inserter-class.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: inserter (class) @@ -12,7 +12,7 @@Front Page / Algorithms / Inserters / inserter (class) -inserter (class)
+inserter (class)
Synopsis
diff --git a/doc/refmanual/inserter.html b/doc/refmanual/inserter.html index 665bec0..ad1a3da 100644 --- a/doc/refmanual/inserter.html +++ b/doc/refmanual/inserter.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Inserter @@ -12,13 +12,13 @@Front Page / Algorithms / Concepts / Inserter -Inserter
+Inserter
Description
An Inserter is a compile-time substitute for STL Output Iterator. Under the hood, it's simply a type holding two entities: a state and an operation. When passed to a -transformation algorithm, the inserter's binary operation is +transformation algorithm, the inserter's binary operation is invoked for every element that would normally be written into the output iterator, with the element itself (as the second argument) and the result of the previous operation's invocation — or, diff --git a/doc/refmanual/inserters.html b/doc/refmanual/inserters.html index 932a23d..41c1ab1 100644 --- a/doc/refmanual/inserters.html +++ b/doc/refmanual/inserters.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: Inserters @@ -12,12 +12,12 @@Front Page / Algorithms / Inserters diff --git a/doc/refmanual/int.html b/doc/refmanual/int.html index b6777a7..2b361ad 100644 --- a/doc/refmanual/int.html +++ b/doc/refmanual/int.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: int_ @@ -12,7 +12,7 @@Front Page / Data Types / Numeric / int_ -int_
+int_
Synopsis
diff --git a/doc/refmanual/integral-c.html b/doc/refmanual/integral-c.html index 03a1825..68cf4bb 100644 --- a/doc/refmanual/integral-c.html +++ b/doc/refmanual/integral-c.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: integral_c @@ -12,7 +12,7 @@Front Page / Data Types / Numeric / integral_c -integral_c
+integral_c
Synopsis
diff --git a/doc/refmanual/integral-constant.html b/doc/refmanual/integral-constant.html index 0964560..6f0b5ea 100644 --- a/doc/refmanual/integral-constant.html +++ b/doc/refmanual/integral-constant.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Integral Constant @@ -12,7 +12,7 @@Front Page / Data Types / Concepts / Integral Constant -Integral Constant
+Integral Constant
Description
An Integral Constant is a holder class for a compile-time value of an diff --git a/doc/refmanual/integral-sequence-wrapper.html b/doc/refmanual/integral-sequence-wrapper.html index ded0def..b672052 100644 --- a/doc/refmanual/integral-sequence-wrapper.html +++ b/doc/refmanual/integral-sequence-wrapper.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: Integral Sequence Wrapper @@ -12,7 +12,7 @@Front Page / Sequences / Concepts / Integral Sequence Wrapper -Integral Sequence Wrapper
+Integral Sequence Wrapper
Description
An Integral Sequence Wrapper is a class template that provides a concise diff --git a/doc/refmanual/intrinsic-metafunctions.html b/doc/refmanual/intrinsic-metafunctions.html index e21fd6c..6144366 100644 --- a/doc/refmanual/intrinsic-metafunctions.html +++ b/doc/refmanual/intrinsic-metafunctions.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: Intrinsic Metafunctions @@ -12,11 +12,11 @@Front Page / Sequences / Intrinsic Metafunctions -diff --git a/doc/refmanual/introspection.html b/doc/refmanual/introspection.html index 4bcfd0b..174bc96 100644 --- a/doc/refmanual/introspection.html +++ b/doc/refmanual/introspection.html @@ -3,25 +3,31 @@ - +Intrinsic Metafunctions
+Intrinsic Metafunctions
The metafunctions that form the essential interface of sequence classes -documented in the corresponding sequence concepts are known as +documented in the corresponding sequence concepts are known as intrinsic sequence operations. They differ from generic -sequence algorithms in that, in general, they need to be implemented +sequence algorithms in that, in general, they need to be implemented from scratch for each new sequence class [1].
It's worth noting that STL counterparts of these metafunctions are usually implemented as member functions.
@@ -31,29 +31,29 @@ as begin / -- at
-- at_c
-- back
-- begin
-- clear
-- empty
-- end
-- erase
-- erase_key
-- front
-- has_key
-- insert
-- insert_range
-- is_sequence
-- key_type
-- order
-- pop_back
-- pop_front
-- push_back
-- push_front
-- sequence_tag
-- size
-- value_type
+- at
+- at_c
+- back
+- begin
+- clear
+- empty
+- end
+- erase
+- erase_key
+- front
+- has_key
+- insert
+- insert_range
+- is_sequence
+- key_type
+- order
+- pop_back
+- pop_front
+- push_back
+- push_front
+- sequence_tag
+- size
+- value_type
The MPL Reference Manual: Introspection -
+
Front Page / Macros / Introspection --Introspection
- +Introspection
+ + + + +diff --git a/doc/refmanual/is-sequence.html b/doc/refmanual/is-sequence.html index 86e808b..29dcab9 100644 --- a/doc/refmanual/is-sequence.html +++ b/doc/refmanual/is-sequence.html @@ -3,7 +3,7 @@ - +
+ diff --git a/doc/refmanual/invocation.html b/doc/refmanual/invocation.html index 50a98dc..e9deb90 100644 --- a/doc/refmanual/invocation.html +++ b/doc/refmanual/invocation.html @@ -3,7 +3,7 @@ - +
The MPL Reference Manual: Invocation @@ -12,12 +12,12 @@Front Page / Metafunctions / Invocation The MPL Reference Manual: is_sequence @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / is_sequence -is_sequence
+is_sequence
Synopsis
diff --git a/doc/refmanual/iter-fold.html b/doc/refmanual/iter-fold.html index 9051ee3..7bc55e2 100644 --- a/doc/refmanual/iter-fold.html +++ b/doc/refmanual/iter-fold.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: iter_fold @@ -12,7 +12,7 @@Front Page / Algorithms / Iteration Algorithms / iter_fold -iter_fold
+iter_fold
Synopsis
diff --git a/doc/refmanual/iteration-algorithms.html b/doc/refmanual/iteration-algorithms.html index 09a5e54..ad422a0 100644 --- a/doc/refmanual/iteration-algorithms.html +++ b/doc/refmanual/iteration-algorithms.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Iteration Algorithms @@ -12,7 +12,7 @@Front Page / Algorithms / Iteration Algorithms -diff --git a/doc/refmanual/iterator-category.html b/doc/refmanual/iterator-category.html index 708ff11..61ab9e3 100644 --- a/doc/refmanual/iterator-category.html +++ b/doc/refmanual/iterator-category.html @@ -3,7 +3,7 @@ - +Iteration Algorithms
+Iteration Algorithms
Iteration algorithms are the basic building blocks behind many of the MPL's algorithms, and are usually the first place to look at when starting to build a new one. Abstracting away the details of sequence @@ -32,11 +32,11 @@ because the restricted functionality allows for more optimizations. -->
The MPL Reference Manual: iterator_category @@ -12,7 +12,7 @@Front Page / Iterators / Iterator Metafunctions / iterator_category -iterator_category
+iterator_category
Synopsis
diff --git a/doc/refmanual/iterator-metafunctions.html b/doc/refmanual/iterator-metafunctions.html index 32a64bd..a1b4777 100644 --- a/doc/refmanual/iterator-metafunctions.html +++ b/doc/refmanual/iterator-metafunctions.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Iterator Metafunctions @@ -12,18 +12,18 @@Front Page / Iterators / Iterator Metafunctions -diff --git a/doc/refmanual/iterator-range.html b/doc/refmanual/iterator-range.html index ddfb73a..441a59b 100644 --- a/doc/refmanual/iterator-range.html +++ b/doc/refmanual/iterator-range.html @@ -3,7 +3,7 @@ - +Iterator Metafunctions
+Iterator Metafunctions
From the MPL standpoint, all iterators are opaque types. Incrementing, dereferencing and the rest of iterator functionality is accessed through the associated iterator metafunctions.
The MPL Reference Manual: iterator_range @@ -12,7 +12,7 @@Front Page / Sequences / Views / iterator_range -iterator_range
+iterator_range
Synopsis
diff --git a/doc/refmanual/iterators-concepts.html b/doc/refmanual/iterators-concepts.html index 91ad965..d789498 100644 --- a/doc/refmanual/iterators-concepts.html +++ b/doc/refmanual/iterators-concepts.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Concepts @@ -12,7 +12,7 @@Front Page / Iterators / Concepts -diff --git a/doc/refmanual/iterators.html b/doc/refmanual/iterators.html index 306b17e..5a2eeac 100644 --- a/doc/refmanual/iterators.html +++ b/doc/refmanual/iterators.html @@ -3,7 +3,7 @@ - +Concepts
+Concepts
All iterators in MPL are classified into three iterator concepts, or categories, named according to the type of traversal provided. The categories are: Forward Iterator, Bidirectional Iterator, and @@ -30,9 +30,9 @@ discussed at length in [n
The MPL Reference Manual: Iterators @@ -12,7 +12,7 @@Front Page / Iterators -diff --git a/doc/refmanual/joint-view.html b/doc/refmanual/joint-view.html index 97948c8..563ffcc 100644 --- a/doc/refmanual/joint-view.html +++ b/doc/refmanual/joint-view.html @@ -3,7 +3,7 @@ - +Iterators
+Iterators
Iterators are generic means of addressing a particular element or a range of sequential elements in a sequence. They are also a mechanism that makes it possible to decouple algorithms from concrete compile-time sequence @@ -23,8 +23,8 @@ iterator inteface is provided.
The MPL Reference Manual: joint_view @@ -12,7 +12,7 @@Front Page / Sequences / Views / joint_view -joint_view
+joint_view
Synopsis
diff --git a/doc/refmanual/key-type.html b/doc/refmanual/key-type.html index 1bbb86b..72af58d 100644 --- a/doc/refmanual/key-type.html +++ b/doc/refmanual/key-type.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: key_type @@ -12,7 +12,7 @@Front Page / Sequences / Intrinsic Metafunctions / key_type -key_type
+key_type
Description
-Returns the key that would be used to identify X in Sequence.
+Returns the key that would be used to identify X in Sequence.
Header
@@ -61,7 +61,7 @@ struct key_type@@ -81,7 +81,7 @@ typedef key_type<s,x>::ty X Any type -The type to get the key for. +The type to get the key for. - Precondition: x can be put in s. Semantics: k is the key that would be used to identify x in s. +Semantics: k is the key that would be used to identify x in s. Postcondition: If key_type< s,deref<pos1>::type >::type is identical to key_type< s,deref<pos2>::type >::type then pos1 is identical to pos2. diff --git a/doc/refmanual/lambda-expression.html b/doc/refmanual/lambda-expression.html index fe545dd..f651d3c 100644 --- a/doc/refmanual/lambda-expression.html +++ b/doc/refmanual/lambda-expression.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: Lambda Expression @@ -12,7 +12,7 @@Front Page / Metafunctions / Concepts / Lambda Expression -Lambda Expression
+Lambda Expression
Description
A Lambda Expression is a compile-time invocable entity in either of the following two diff --git a/doc/refmanual/lambda.html b/doc/refmanual/lambda.html index 57920ab..89b718a 100644 --- a/doc/refmanual/lambda.html +++ b/doc/refmanual/lambda.html @@ -3,7 +3,7 @@
- +The MPL Reference Manual: lambda @@ -12,7 +12,7 @@Front Page / Metafunctions / Composition and Argument Binding / lambda -lambda
+lambda
Synopsis
diff --git a/doc/refmanual/less-equal.html b/doc/refmanual/less-equal.html index 9d5f83d..62a8dbc 100644 --- a/doc/refmanual/less-equal.html +++ b/doc/refmanual/less-equal.html @@ -3,7 +3,7 @@ - +The MPL Reference Manual: less_equal @@ -12,7 +12,7 @@Front Page / Metafunctions / Comparisons / less_equal