diff --git a/doc/container.qbk b/doc/container.qbk index d6b16c35..ad7f5c7e 100644 --- a/doc/container.qbk +++ b/doc/container.qbk @@ -1470,6 +1470,10 @@ 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 < @@ -1487,6 +1491,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 @@ -1497,9 +1513,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` +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__. @@ -1513,7 +1536,11 @@ default. Example: [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] diff --git a/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp b/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp index 87ab09fa..d720fcf8 100644 --- a/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp +++ b/include/boost/fusion/adapted/struct/detail/define_struct_inline.hpp @@ -392,9 +392,9 @@ typename boost_fusion_detail_It1::index \ >::type type; \ \ - BOOST_FUSION_GPU_ENABLED \ - static type call(boost_fusion_detail_It1 const& it1, \ - boost_fusion_detail_It2 const& it2) \ + BOOST_FUSION_GPU_ENABLED \ + static type call(boost_fusion_detail_It1 const& /* it1 */, \ + boost_fusion_detail_It2 const& /* it2 */) \ { \ return type(); \ } \ diff --git a/include/boost/fusion/container/map/detail/map_impl.hpp b/include/boost/fusion/container/map/detail/map_impl.hpp index f70d1392..2e0f50cc 100644 --- a/include/boost/fusion/container/map/detail/map_impl.hpp +++ b/include/boost/fusion/container/map/detail/map_impl.hpp @@ -38,12 +38,12 @@ namespace boost { namespace fusion { namespace detail template BOOST_FUSION_GPU_ENABLED - map_impl(Iterator const& iter, map_impl_from_iterator) + map_impl(Iterator const&, map_impl_from_iterator) {} template BOOST_FUSION_GPU_ENABLED - void assign(Iterator const& iter, map_impl_from_iterator) + void assign(Iterator const&, map_impl_from_iterator) {} BOOST_FUSION_GPU_ENABLED