diff --git a/include/boost/tuple/detail/tuple_basic.hpp b/include/boost/tuple/detail/tuple_basic.hpp index bed3042..96fb5bd 100644 --- a/include/boost/tuple/detail/tuple_basic.hpp +++ b/include/boost/tuple/detail/tuple_basic.hpp @@ -34,6 +34,7 @@ #include // needed for the assignment from pair to tuple +#include // for std::size_t #include #include @@ -93,7 +94,7 @@ namespace detail { template class generate_error; -template +template struct drop_front { template struct apply { @@ -127,14 +128,14 @@ struct drop_front<0> { #ifndef BOOST_NO_CV_SPECIALIZATIONS -template +template struct element { typedef BOOST_DEDUCED_TYPENAME detail::drop_front::BOOST_NESTED_TEMPLATE apply::type::head_type type; }; -template +template struct element { private: @@ -151,14 +152,14 @@ public: namespace detail { -template +template struct element_impl { typedef BOOST_DEDUCED_TYPENAME detail::drop_front::BOOST_NESTED_TEMPLATE apply::type::head_type type; }; -template +template struct element_impl { typedef BOOST_DEDUCED_TYPENAME detail::drop_front::BOOST_NESTED_TEMPLATE @@ -169,7 +170,7 @@ struct element_impl } // end of namespace detail -template +template struct element: public detail::element_impl::value> { @@ -210,7 +211,7 @@ template struct access_traits { // get function for non-const cons-lists, returns a reference to the element -template +template inline typename access_traits< typename element >::type >::non_const_type @@ -224,7 +225,7 @@ get(cons& c) { // get function for const cons-lists, returns a const reference to // the element. If the element is a reference, returns the reference // as such (that is, can return a non-const reference) -template +template inline typename access_traits< typename element >::type >::const_type @@ -333,7 +334,7 @@ struct cons { } // get member functions (non-const and const) - template + template typename access_traits< typename element >::type >::non_const_type @@ -341,7 +342,7 @@ struct cons { return boost::tuples::get(*this); // delegate to non-member get } - template + template typename access_traits< typename element >::type >::const_type @@ -403,7 +404,7 @@ struct cons { // is illformed if HT is a reference cons& operator=(const cons& u) { head = u.head; return *this; } - template + template typename access_traits< typename element::type >::non_const_type @@ -411,7 +412,7 @@ struct cons { return boost::tuples::get(*this); } - template + template typename access_traits< typename element::type >::const_type @@ -424,27 +425,27 @@ struct cons { // templates for finding out the length of the tuple ------------------- template -struct length: boost::integral_constant::value> +struct length: boost::integral_constant::value> { }; template<> -struct length >: boost::integral_constant +struct length >: boost::integral_constant { }; template<> -struct length const>: boost::integral_constant +struct length const>: boost::integral_constant { }; template<> -struct length: boost::integral_constant +struct length: boost::integral_constant { }; template<> -struct length: boost::integral_constant +struct length: boost::integral_constant { }; @@ -676,20 +677,20 @@ struct make_tuple_traits { // All arrays are converted to const. This is because make_tuple takes its // parameters as const T& and thus the knowledge of the potential // non-constness of actual argument is lost. -template struct make_tuple_traits { +template struct make_tuple_traits { typedef const T (&type)[n]; }; -template +template struct make_tuple_traits { typedef const T (&type)[n]; }; -template struct make_tuple_traits { +template struct make_tuple_traits { typedef const volatile T (&type)[n]; }; -template +template struct make_tuple_traits { typedef const volatile T (&type)[n]; };