diff --git a/include/boost/container/detail/variadic_templates_tools.hpp b/include/boost/container/detail/variadic_templates_tools.hpp index f5101c5..e9fa9cd 100644 --- a/include/boost/container/detail/variadic_templates_tools.hpp +++ b/include/boost/container/detail/variadic_templates_tools.hpp @@ -136,21 +136,25 @@ typename get_impl >::const_type get(const tuple& // in a function call. //////////////////////////////////////////////////// -template -struct index_tuple{}; +template struct index_tuple{ typedef index_tuple type; }; -template > -struct build_number_seq; +template struct concat_index_tuple; -template -struct build_number_seq > - : build_number_seq > +template +struct concat_index_tuple, index_tuple> + : index_tuple{}; + +template struct build_number_seq; + +template +struct build_number_seq + : concat_index_tuple::type + ,typename build_number_seq::type + >::type {}; -template -struct build_number_seq<0, index_tuple > -{ typedef index_tuple type; }; - +template<> struct build_number_seq<0> : index_tuple<>{}; +template<> struct build_number_seq<1> : index_tuple<0>{}; }}} //namespace boost { namespace container { namespace container_detail {