Ticket #1309: iterator.patch
File iterator.patch, 1.6 KB (added by , 15 years ago) |
---|
-
iterator.hpp
24 24 25 25 namespace boost 26 26 { 27 28 #if BOOST_WORKAROUND(BOOST_MSVC, == 1310) 29 namespace range_detail_vc7_1 30 { 31 32 template< typename C, typename Sig = void(C) > 33 struct range_iterator 34 { 35 typedef BOOST_RANGE_DEDUCED_TYPENAME 36 mpl::eval_if_c< is_const<C>::value, 37 range_const_iterator< typename remove_const<C>::type >, 38 range_mutable_iterator<C> >::type type; 39 }; 40 41 template< typename C, typename T > 42 struct range_iterator< C, void(T[]) > 43 { 44 typedef T* type; 45 }; 46 47 } 48 #endif 49 27 50 template< typename C > 28 51 struct range_iterator 29 52 { 53 #if BOOST_WORKAROUND(BOOST_MSVC, == 1310) 54 typedef BOOST_RANGE_DEDUCED_TYPENAME 55 range_detail_vc7_1::range_iterator<C>::type type; 56 #else 30 57 typedef BOOST_RANGE_DEDUCED_TYPENAME 31 58 mpl::eval_if_c< is_const<C>::value, 32 59 range_const_iterator< typename remove_const<C>::type >, … … 31 58 mpl::eval_if_c< is_const<C>::value, 32 59 range_const_iterator< typename remove_const<C>::type >, 33 60 range_mutable_iterator<C> >::type type; 61 #endif 34 62 }; 35 63 36 64 } // namespace boost 37 65 38 //#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION39 66 40 67 #endif