Ticket #5061: range.patch
File range.patch, 3.9 KB (added by , 12 years ago) |
---|
-
./VC/boost_1_45_0/boost/range/adaptor/transformed.hpp
39 39 public: 40 40 typedef F transform_fn_type; 41 41 typedef R source_range_type; 42 42 43 43 transform_range( F f, R& r ) 44 : base( make_transform_iterator( boost::begin(r), f ), 45 make_transform_iterator( boost::end(r), f ) ) 44 // boost:: to suppress ADL which causes ambiguity with boost::interprocess::make_transform_iterator 45 : base( boost::make_transform_iterator( boost::begin(r), f ), 46 boost::make_transform_iterator( boost::end(r), f ) ) 46 47 47 48 { } 48 49 }; 49 50 50 51 template< class T > -
./VC/boost_1_45_0/boost/range/detail/demote_iterator_traversal_tag.hpp
17 17 { 18 18 namespace range_detail 19 19 { 20 20 21 21 template<class IteratorTraversalTag1, class IteratorTraversalTag2> 22 struct demote_iterator_traversal_tag22 struct inner_demote_iterator_traversal_tag 23 23 { 24 24 }; 25 25 26 26 #define BOOST_DEMOTE_TRAVERSAL_TAG( Tag1, Tag2, ResultTag ) \ 27 template<> struct demote_iterator_traversal_tag< Tag1 , Tag2 > \27 template<> struct inner_demote_iterator_traversal_tag< Tag1 , Tag2 > \ 28 28 { \ 29 29 typedef ResultTag type; \ 30 30 }; 31 31 32 32 BOOST_DEMOTE_TRAVERSAL_TAG( no_traversal_tag, no_traversal_tag, no_traversal_tag ) … … 70 70 BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, forward_traversal_tag, forward_traversal_tag ) 71 71 BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, bidirectional_traversal_tag, bidirectional_traversal_tag ) 72 72 BOOST_DEMOTE_TRAVERSAL_TAG( random_access_traversal_tag, random_access_traversal_tag, random_access_traversal_tag ) 73 73 74 74 #undef BOOST_DEMOTE_TRAVERSAL_TAG 75 76 template<class IteratorTraversalTag1, class IteratorTraversalTag2> 77 struct demote_iterator_traversal_tag: inner_demote_iterator_traversal_tag< 78 typename boost::detail::pure_traversal_tag< IteratorTraversalTag1 >::type, 79 typename boost::detail::pure_traversal_tag< IteratorTraversalTag2 >::type 80 > 81 { 82 }; 75 83 76 84 } // namespace range_detail 77 85 } // namespace boost 78 86 79 87 #endif // include guard -
./VC/boost_1_45_0/boost/range/detail/join_iterator.hpp
118 118 }; 119 119 120 120 template<typename Iterator1 121 121 , typename Iterator2 122 122 , typename ValueType = typename iterator_value<Iterator1>::type 123 , typename Reference = typename iterator_reference<Iterator1>::type 123 // find least demanding, commonly supported reference type, in the order &, const& and by-value: 124 , typename Reference = typename mpl::if_c< 125 !is_reference< typename iterator_reference<Iterator1>::type >::value 126 || !is_reference< typename iterator_reference<Iterator2>::type >::value, 127 typename remove_const< 128 typename remove_reference< 129 typename iterator_reference<Iterator1>::type 130 >::type 131 >::type, 132 typename mpl::if_c< 133 is_const< 134 typename remove_reference< 135 typename iterator_reference<Iterator1>::type 136 >::type 137 >::value 138 || is_const< 139 typename remove_reference< 140 typename iterator_reference<Iterator2>::type 141 >::type 142 >::value, 143 typename add_const< 144 typename iterator_reference<Iterator1>::type 145 >::type, 146 typename iterator_reference<Iterator1>::type 147 >::type 148 >::type 124 149 , typename Traversal = typename demote_iterator_traversal_tag< 125 150 typename iterator_traversal<Iterator1>::type 126 151 , typename iterator_traversal<Iterator2>::type>::type 127 152 > 128 153 class join_iterator