| 
									
										
										
										
											2005-09-13 22:42:38 +00:00
										 |  |  | [section:concept_checking Concept Checking] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The iterator concept checking classes provide a mechanism for a | 
					
						
							|  |  |  | template to report better error messages when a user instantiates the | 
					
						
							|  |  |  | template with a type that does not meet the requirements of the | 
					
						
							|  |  |  | template. For an introduction to using concept checking classes, see | 
					
						
							| 
									
										
										
										
											2017-08-26 19:56:23 +03:00
										 |  |  | the documentation for the _concept_check_ library. | 
					
						
							| 
									
										
										
										
											2005-09-13 22:42:38 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | [h2 `iterator_concepts.hpp` Synopsis] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     namespace boost_concepts { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Iterator Access Concepts | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator> | 
					
						
							|  |  |  |         class ReadableIteratorConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template < | 
					
						
							|  |  |  |             typename Iterator | 
					
						
							|  |  |  |           , typename ValueType = std::iterator_traits<Iterator>::value_type | 
					
						
							|  |  |  |         > | 
					
						
							|  |  |  |         class WritableIteratorConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator> | 
					
						
							|  |  |  |         class SwappableIteratorConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator> | 
					
						
							|  |  |  |         class LvalueIteratorConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Iterator Traversal Concepts | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator> | 
					
						
							|  |  |  |         class IncrementableIteratorConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator> | 
					
						
							|  |  |  |         class SinglePassIteratorConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator> | 
					
						
							|  |  |  |         class ForwardTraversalConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator> | 
					
						
							|  |  |  |         class BidirectionalTraversalConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator> | 
					
						
							|  |  |  |         class RandomAccessTraversalConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Interoperability | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         template <typename Iterator, typename ConstIterator> | 
					
						
							|  |  |  |         class InteroperableIteratorConcept; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-26 19:56:23 +03:00
										 |  |  | [endsect] |