1 [section:concept_checking Concept Checking]
3 The iterator concept checking classes provide a mechanism for a
4 template to report better error messages when a user instantiates the
5 template with a type that does not meet the requirements of the
6 template. For an introduction to using concept checking classes, see
7 the documentation for the boost::concept_check library.
9 [h2 `iterator_concepts.hpp` Synopsis]
11 namespace boost_concepts {
13 // Iterator Access Concepts
15 template <typename Iterator>
16 class ReadableIteratorConcept;
20 , typename ValueType = std::iterator_traits<Iterator>::value_type
22 class WritableIteratorConcept;
24 template <typename Iterator>
25 class SwappableIteratorConcept;
27 template <typename Iterator>
28 class LvalueIteratorConcept;
30 // Iterator Traversal Concepts
32 template <typename Iterator>
33 class IncrementableIteratorConcept;
35 template <typename Iterator>
36 class SinglePassIteratorConcept;
38 template <typename Iterator>
39 class ForwardTraversalConcept;
41 template <typename Iterator>
42 class BidirectionalTraversalConcept;
44 template <typename Iterator>
45 class RandomAccessTraversalConcept;
49 template <typename Iterator, typename ConstIterator>
50 class InteroperableIteratorConcept;