concept_checking.qbk 1.4 KB

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