1[section:concept_checking Concept Checking] 2 3The iterator concept checking classes provide a mechanism for a 4template to report better error messages when a user instantiates the 5template with a type that does not meet the requirements of the 6template. For an introduction to using concept checking classes, see 7the documentation for the _concept_check_ library. 8 9[h2 `iterator_concepts.hpp` Synopsis] 10 11 namespace boost_concepts { 12 13 // Iterator Access Concepts 14 15 template <typename Iterator> 16 class ReadableIteratorConcept; 17 18 template < 19 typename Iterator 20 , typename ValueType = std::iterator_traits<Iterator>::value_type 21 > 22 class WritableIteratorConcept; 23 24 template <typename Iterator> 25 class SwappableIteratorConcept; 26 27 template <typename Iterator> 28 class LvalueIteratorConcept; 29 30 // Iterator Traversal Concepts 31 32 template <typename Iterator> 33 class IncrementableIteratorConcept; 34 35 template <typename Iterator> 36 class SinglePassIteratorConcept; 37 38 template <typename Iterator> 39 class ForwardTraversalConcept; 40 41 template <typename Iterator> 42 class BidirectionalTraversalConcept; 43 44 template <typename Iterator> 45 class RandomAccessTraversalConcept; 46 47 // Interoperability 48 49 template <typename Iterator, typename ConstIterator> 50 class InteroperableIteratorConcept; 51 52 } 53 54[endsect] 55