diff --git a/include/boost/multi_index/detail/allocator.hpp b/include/boost/multi_index/detail/allocator.hpp index 38d0cfd..d007de9 100644 --- a/include/boost/multi_index/detail/allocator.hpp +++ b/include/boost/multi_index/detail/allocator.hpp @@ -12,7 +12,7 @@ #include /* keep it first to prevent nasty warns in MSVC */ #include #include -#include +#include #include #include #include @@ -147,11 +147,11 @@ struct compliant_allocator_rebind_to template struct rebind_to: - mpl::if_c< + mpl::apply_if_c< is_partial_std_allocator::value, partial_std_allocator_rebind_to, compliant_allocator_rebind_to - >::type + > { }; diff --git a/include/boost/multi_index/detail/base_type.hpp b/include/boost/multi_index/detail/base_type.hpp index d7fb8a7..4a44b67 100644 --- a/include/boost/multi_index/detail/base_type.hpp +++ b/include/boost/multi_index/detail/base_type.hpp @@ -46,9 +46,11 @@ struct index_applier struct index_applier { template - struct apply:IndexSpecifierIterator::type:: - BOOST_NESTED_TEMPLATE index_class + struct apply { + typedef typename IndexSpecifierIterator::type index_specifier; + typedef typename index_specifier:: + BOOST_NESTED_TEMPLATE index_class::type type; }; }; #endif diff --git a/include/boost/multi_index/detail/node_type.hpp b/include/boost/multi_index/detail/node_type.hpp index 88108de..496ea47 100644 --- a/include/boost/multi_index/detail/node_type.hpp +++ b/include/boost/multi_index/detail/node_type.hpp @@ -45,9 +45,11 @@ struct index_node_applier struct index_node_applier { template - struct apply:IndexSpecifierIterator::type:: - BOOST_NESTED_TEMPLATE node_class + struct apply { + typedef typename IndexSpecifierIterator::type index_specifier; + typedef typename index_specifier:: + BOOST_NESTED_TEMPLATE node_class::type type; }; }; #endif