diff --git a/include/boost/concept_check.hpp b/include/boost/concept_check.hpp index 632fced..01cca84 100644 --- a/include/boost/concept_check.hpp +++ b/include/boost/concept_check.hpp @@ -535,35 +535,16 @@ struct require_same { typedef T type; }; //=========================================================================== // Iterator Concepts - template - struct TrivialIteratorConcept - { - void constraints() { - function_requires< AssignableConcept >(); - function_requires< DefaultConstructibleConcept >(); - function_requires< EqualityComparableConcept >(); - (void)*i; // require dereference operator - } - TT i; - }; - - template - struct Mutable_TrivialIteratorConcept - { - void constraints() { - function_requires< TrivialIteratorConcept >(); - *i = *j; // require dereference and assignment - } - TT i, j; - }; - template struct InputIteratorConcept { void constraints() { - function_requires< TrivialIteratorConcept >(); - // require iterator_traits typedef's + function_requires< AssignableConcept >(); + function_requires< EqualityComparableConcept >(); + TT j(i); + (void)*i; // require dereference operator #ifndef BOOST_NO_STD_ITERATOR_TRAITS + // require iterator_traits typedef's typedef typename std::iterator_traits::difference_type D; // Hmm, the following is a bit fragile //function_requires< SignedIntegerConcept >(); @@ -572,7 +553,7 @@ struct require_same { typedef T type; }; typedef typename std::iterator_traits::iterator_category C; function_requires< ConvertibleConcept >(); #endif - ++i; // require preincrement operator + ++j; // require preincrement operator i++; // require postincrement operator } TT i;