99#include < boost/concept_check.hpp>
1010#include < boost/iterator/iterator_categories.hpp>
1111
12- // Use boost::detail::iterator_traits to work around some MSVC/Dinkumware problems.
13- #include < boost/detail/iterator.hpp>
14-
1512#include < boost/type_traits/is_same.hpp>
1613#include < boost/type_traits/is_integral.hpp>
1714
2724#include < boost/config.hpp>
2825
2926#include < algorithm>
27+ #include < iterator>
3028
3129#include < boost/concept/detail/concept_def.hpp>
3230
@@ -44,8 +42,8 @@ namespace boost_concepts
4442 , boost::CopyConstructible<Iterator>
4543
4644 {
47- typedef BOOST_DEDUCED_TYPENAME boost::detail ::iterator_traits<Iterator>::value_type value_type;
48- typedef BOOST_DEDUCED_TYPENAME boost::detail ::iterator_traits<Iterator>::reference reference;
45+ typedef BOOST_DEDUCED_TYPENAME std ::iterator_traits<Iterator>::value_type value_type;
46+ typedef BOOST_DEDUCED_TYPENAME std ::iterator_traits<Iterator>::reference reference;
4947
5048 BOOST_CONCEPT_USAGE (ReadableIterator)
5149 {
@@ -59,7 +57,7 @@ namespace boost_concepts
5957
6058 template <
6159 typename Iterator
62- , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail ::iterator_traits<Iterator>::value_type
60+ , typename ValueType = BOOST_DEDUCED_TYPENAME std ::iterator_traits<Iterator>::value_type
6361 >
6462 struct WritableIterator
6563 : boost::CopyConstructible<Iterator>
@@ -75,7 +73,7 @@ namespace boost_concepts
7573
7674 template <
7775 typename Iterator
78- , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail ::iterator_traits<Iterator>::value_type
76+ , typename ValueType = BOOST_DEDUCED_TYPENAME std ::iterator_traits<Iterator>::value_type
7977 >
8078 struct WritableIteratorConcept : WritableIterator<Iterator,ValueType> {};
8179
@@ -92,7 +90,7 @@ namespace boost_concepts
9290
9391 BOOST_concept (LvalueIterator,(Iterator))
9492 {
95- typedef typename boost::detail ::iterator_traits<Iterator>::value_type value_type;
93+ typedef typename std ::iterator_traits<Iterator>::value_type value_type;
9694
9795 BOOST_CONCEPT_USAGE (LvalueIterator)
9896 {
@@ -144,7 +142,7 @@ namespace boost_concepts
144142 : SinglePassIterator<Iterator>
145143 , boost::DefaultConstructible<Iterator>
146144 {
147- typedef typename boost::detail ::iterator_traits<Iterator>::difference_type difference_type;
145+ typedef typename std ::iterator_traits<Iterator>::difference_type difference_type;
148146
149147 BOOST_MPL_ASSERT ((boost::is_integral<difference_type>));
150148 BOOST_MPL_ASSERT_RELATION (std::numeric_limits<difference_type>::is_signed, ==, true );
@@ -221,7 +219,7 @@ namespace boost_concepts
221219 boost::random_access_traversal_tag, boost::random_access_traversal_tag)
222220 {
223221 bool b;
224- typename boost::detail ::iterator_traits<Iterator2>::difference_type n;
222+ typename std ::iterator_traits<Iterator2>::difference_type n;
225223 b = i1 < i2;
226224 b = i1 <= i2;
227225 b = i1 > i2;
0 commit comments