diff --git a/doc/container.qbk b/doc/container.qbk index 69df6f8f..7c619bda 100644 --- a/doc/container.qbk +++ b/doc/container.qbk @@ -1468,13 +1468,17 @@ rules for __element_conversion__. Returns the result type of __make_map__. +The implementation depends on the support of variadic templates. + +When variadic templates are not supported, make_map is a metafunction of the form: + [heading Synopsis] template < typename K0, typename K1,... typename KN , typename T0, typename T1,... typename TN> struct make_map; - + The variadic function accepts `0` to `FUSION_MAX_MAP_SIZE` elements, where `FUSION_MAX_MAP_SIZE` is a user definable predefined maximum that defaults to `10`. You may define the preprocessor constant @@ -1483,6 +1487,18 @@ default. Example: #define FUSION_MAX_MAP_SIZE 20 +When variadic templates are supported, make_map is a metafunction class of the form: + +[heading Synopsis] + + template < + typename K0, typename K1,... typename KN> + struct make_map + { + struct apply< + typename T0, typename T1,... typename TN> + }; + [heading Parameters] [table @@ -1493,9 +1509,16 @@ default. Example: [heading Expression Semantics] + #if !defined(BOOST_FUSION_HAS_VARIADIC_MAP) resulf_of::make_map::type; + #else + resulf_of::make_map::apply::type; + #endif -[*Return type]: __result_of_make_map__`::type` +[*Return type]: __result_of_make_map__`::type` +when variadic templates are not supported, or +__result_of_make_map__`::apply::type` +when variadic templates are supported. [*Semantics]: A __map__ with __fusion_pair__ elements where the `second_type` is converted following the rules for __element_conversion__. @@ -1508,8 +1531,12 @@ default. Example: #include [heading Example] - + + #if !defined(BOOST_FUSION_HAS_VARIADIC_MAP) result_of::make_map::type + #else + result_of::make_map::apply::type + #endif [heading See also]