diff --git a/include/boost/range/detail/remove_extent.hpp b/include/boost/range/detail/remove_extent.hpp index 6b69041..33df2b1 100755 --- a/include/boost/range/detail/remove_extent.hpp +++ b/include/boost/range/detail/remove_extent.hpp @@ -76,7 +76,7 @@ namespace boost Case8, mpl::identity, mpl::eval_if< Case9, mpl::identity, mpl::if_< Case10, Type10, mpl::void_ > > > > > > > > > - >::type temp1; + >::type result1; typedef typename mpl::eval_if< Case11, mpl::identity, mpl::eval_if< @@ -89,12 +89,12 @@ namespace boost Case18, mpl::identity, mpl::eval_if< Case19, mpl::identity, mpl::if_< Case20, Type20, mpl::void_ > > > > > > > > > - > temp2; + > result2; typedef typename mpl::eval_if< - is_same, - temp2, - mpl::identity + is_same, + result2, + mpl::identity >::type type; }; @@ -102,11 +102,13 @@ namespace boost struct remove_extent { static T* ar; BOOST_STATIC_CONSTANT(std::size_t, size = sizeof(*ar) / sizeof((*ar)[0])); - + typedef typename select< is_same, bool, is_same, char, + is_same, signed char, + is_same, unsigned char, #ifndef BOOST_NO_INTRINSIC_WCHAR_T is_same, wchar_t, #endif @@ -116,8 +118,18 @@ namespace boost is_same, unsigned int, is_same, long, is_same, unsigned long, + is_same, float, + is_same, double, + is_same, long double, + is_same, long double, + is_same, long double + >::type result1; + typedef typename + select< is_same, const bool, is_same, const char, + is_same, const signed char, + is_same, const unsigned char, #ifndef BOOST_NO_INTRINSIC_WCHAR_T is_same, const wchar_t, #endif @@ -126,7 +138,18 @@ namespace boost is_same, const int, is_same, const unsigned int, is_same, const long, - is_same, const unsigned long + is_same, const unsigned long, + is_same, const float, + is_same, const double, + is_same, const long double, + is_same, const long double, + is_same, const long double + > result2; + typedef typename + mpl::eval_if< + is_same, + result2, + mpl::identity >::type type; };