1<?xml version="1.0" encoding="utf-8" ?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 4<head> 5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" /> 7<title>Iterator Concepts</title> 8<meta name="author" content="David Abrahams, Jeremy Siek, Thomas Witt" /> 9<meta name="organization" content="Boost Consulting, Indiana University Open Systems Lab, Zephyr Associates, Inc." /> 10<meta name="date" content="2006-09-11" /> 11<meta name="copyright" content="Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2004." /> 12<link rel="stylesheet" href="../../../rst.css" type="text/css" /> 13</head> 14<body> 15<div class="document" id="iterator-concepts"> 16<h1 class="title">Iterator Concepts</h1> 17<table class="docinfo" frame="void" rules="none"> 18<col class="docinfo-name" /> 19<col class="docinfo-content" /> 20<tbody valign="top"> 21<tr><th class="docinfo-name">Author:</th> 22<td>David Abrahams, Jeremy Siek, Thomas Witt</td></tr> 23<tr><th class="docinfo-name">Contact:</th> 24<td><a class="first reference external" href="mailto:dave@boost-consulting.com">dave@boost-consulting.com</a>, <a class="reference external" href="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</a>, <a class="last reference external" href="mailto:witt@styleadvisor.com">witt@styleadvisor.com</a></td></tr> 25<tr><th class="docinfo-name">Organization:</th> 26<td><a class="first reference external" href="http://www.boost-consulting.com">Boost Consulting</a>, Indiana University <a class="reference external" href="http://www.osl.iu.edu">Open Systems 27Lab</a>, <a class="last reference external" href="http://www.styleadvisor.com">Zephyr Associates, Inc.</a></td></tr> 28<tr><th class="docinfo-name">Date:</th> 29<td>2006-09-11</td></tr> 30<tr><th class="docinfo-name">Copyright:</th> 31<td>Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2004.</td></tr> 32</tbody> 33</table> 34<!-- Distributed under the Boost --> 35<!-- Software License, Version 1.0. (See accompanying --> 36<!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> 37<table class="docutils field-list" frame="void" rules="none"> 38<col class="field-name" /> 39<col class="field-body" /> 40<tbody valign="top"> 41<tr class="field"><th class="field-name">abstract:</th><td class="field-body">The iterator concept checking classes provide a mechanism for 42a template to report better error messages when a user instantiates 43the template with a type that does not meet the requirements of 44the template.</td> 45</tr> 46</tbody> 47</table> 48<p>For an introduction to using concept checking classes, see 49the documentation for the <a class="reference external" href="../../concept_check/index.html"><tt class="docutils literal"><span class="pre">boost::concept_check</span></tt></a> library.</p> 50<div class="section" id="reference"> 51<h1>Reference</h1> 52<div class="section" id="iterator-access-concepts"> 53<h2>Iterator Access Concepts</h2> 54<ul class="simple"> 55<li><a class="reference external" href="ReadableIterator.html"><em>Readable Iterator</em></a></li> 56<li><a class="reference external" href="WritableIterator.html"><em>Writable Iterator</em></a></li> 57<li><a class="reference external" href="SwappableIterator.html"><em>Swappable Iterator</em></a></li> 58<li><a class="reference external" href="LvalueIterator.html"><em>Lvalue Iterator</em></a></li> 59</ul> 60</div> 61<div class="section" id="iterator-traversal-concepts"> 62<h2>Iterator Traversal Concepts</h2> 63<ul class="simple"> 64<li><a class="reference external" href="IncrementableIterator.html"><em>Incrementable Iterator</em></a></li> 65<li><a class="reference external" href="SinglePassIterator.html"><em>Single Pass Iterator</em></a></li> 66<li><a class="reference external" href="ForwardTraversal.html"><em>Forward Traversal</em></a></li> 67<li><a class="reference external" href="BidirectionalTraversal.html"><em>Bidirectional Traversal</em></a></li> 68<li><a class="reference external" href="RandomAccessTraversal.html"><em>Random Access Traversal</em></a></li> 69</ul> 70</div> 71<div class="section" id="iterator-concepts-hpp-synopsis"> 72<h2><tt class="docutils literal"><span class="pre">iterator_concepts.hpp</span></tt> Synopsis</h2> 73<pre class="literal-block"> 74namespace boost_concepts { 75 76 // Iterator Access Concepts 77 78 template <typename Iterator> 79 class ReadableIteratorConcept; 80 81 template < 82 typename Iterator 83 , typename ValueType = std::iterator_traits<Iterator>::value_type 84 > 85 class WritableIteratorConcept; 86 87 template <typename Iterator> 88 class SwappableIteratorConcept; 89 90 template <typename Iterator> 91 class LvalueIteratorConcept; 92 93 // Iterator Traversal Concepts 94 95 template <typename Iterator> 96 class IncrementableIteratorConcept; 97 98 template <typename Iterator> 99 class SinglePassIteratorConcept; 100 101 template <typename Iterator> 102 class ForwardTraversalConcept; 103 104 template <typename Iterator> 105 class BidirectionalTraversalConcept; 106 107 template <typename Iterator> 108 class RandomAccessTraversalConcept; 109 110 // Interoperability 111 112 template <typename Iterator, typename ConstIterator> 113 class InteroperableIteratorConcept; 114 115} 116</pre> 117</div> 118</div> 119</div> 120<div class="footer"> 121<hr class="footer" /> 122<a class="reference external" href="iterator_concepts.rst">View document source</a>. 123Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. 124 125</div> 126</body> 127</html> 128