2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								<?xml version="1.0" encoding="utf-8" ?> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< html  xmlns = "http://www.w3.org/1999/xhtml"  xml:lang = "en"  lang = "en" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< head > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< meta  http-equiv = "Content-Type"  content = "text/html; charset=utf-8"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2003-09-14 02:17:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< meta  name = "generator"  content = "Docutils 0.3.1: http://docutils.sourceforge.net/"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< title > Iterator Adaptor< / title > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< meta  name = "author"  content = "David Abrahams, Jeremy Siek, Thomas Witt"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< meta  name = "organization"  content = "Boost Consulting, Indiana University Open Systems Lab, University of Hanover Institute for Transport Railway Operation and Construction"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2003-09-22 15:10:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< meta  name = "date"  content = "2003-09-14"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2003-09-14 02:17:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< meta  name = "copyright"  content = "Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003. All rights reserved"  / > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< style  type = "text/css" > < ! - - 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:Author: David Goodger
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:Contact: goodger@users.sourceforge.net
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:date: $Date$
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:version: $Revision$
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:copyright: This stylesheet has been placed in the public domain.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Default cascading style sheet for the HTML output of Docutils.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*/
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.first {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-top: 0 }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.last {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-bottom: 0 }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								a.toc-backref {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  text-decoration: none ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  color: black }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								dd {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-bottom: 0.5em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.abstract {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin: 2em 5em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.abstract p.topic-title {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-weight: bold ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  text-align: center }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.attention, div.caution, div.danger, div.error, div.hint,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.important, div.note, div.tip, div.warning {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin: 2em ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  border: medium outset ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  padding: 1em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.attention p.admonition-title, div.caution p.admonition-title,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.danger p.admonition-title, div.error p.admonition-title,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.warning p.admonition-title {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  color: red ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-weight: bold ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-family: sans-serif }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.hint p.admonition-title, div.important p.admonition-title,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.note p.admonition-title, div.tip p.admonition-title {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-weight: bold ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-family: sans-serif }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.dedication {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin: 2em 5em ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  text-align: center ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-style: italic }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.dedication p.topic-title {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-weight: bold ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-style: normal }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.figure {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-left: 2em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.footer, div.header {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-size: smaller }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.system-messages {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin: 5em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.system-messages h1 {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  color: red }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.system-message {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  border: medium outset ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  padding: 1em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.system-message p.system-message-title {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  color: red ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-weight: bold }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								div.topic {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin: 2em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								h1.title {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  text-align: center }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								h2.subtitle {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  text-align: center }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								hr {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  width: 75% }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ol.simple, ul.simple {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-bottom: 1em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ol.arabic {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  list-style: decimal }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ol.loweralpha {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  list-style: lower-alpha }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ol.upperalpha {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  list-style: upper-alpha }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ol.lowerroman {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  list-style: lower-roman }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ol.upperroman {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  list-style: upper-roman }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								p.caption {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-style: italic }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								p.credits {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-style: italic ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-size: smaller }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								p.label {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  white-space: nowrap }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								p.topic-title {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-weight: bold }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								pre.address {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-bottom: 0 ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-top: 0 ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-family: serif ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-size: 100% }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								pre.line-block {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-family: serif ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-size: 100% }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								pre.literal-block, pre.doctest-block {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-left: 2em ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-right: 2em ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  background-color: #eeeeee }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								span.classifier {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-family: sans-serif ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-style: oblique }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								span.classifier-delimiter {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-family: sans-serif ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-weight: bold }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								span.interpreted {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-family: sans-serif }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								span.option-argument {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-style: italic }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								span.pre {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  white-space: pre }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								span.problematic {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  color: red }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								table {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-top: 0.5em ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin-bottom: 0.5em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								table.citation {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  border-left: solid thin gray ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  padding-left: 0.5ex }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								table.docinfo {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  margin: 2em 4em }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								table.footnote {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  border-left: solid thin black ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  padding-left: 0.5ex }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								td, th {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  padding-left: 0.5em ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  padding-right: 0.5em ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  vertical-align: top }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								th.docinfo-name, th.field-name {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-weight: bold ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  text-align: left ;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  white-space: nowrap }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  font-size: 100% }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								tt {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  background-color: #eeeeee }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ul.auto-toc {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  list-style-type: none }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-->< / style > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / head > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< body > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "document"  id = "iterator-adaptor" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h1  class = "title" > Iterator Adaptor< / h1 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "docinfo"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "docinfo-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "docinfo-content"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Author:< / th > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< td > David Abrahams, Jeremy Siek, Thomas Witt< / td > < / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Contact:< / th > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< td > < a  class = "first reference"  href = "mailto:dave@boost-consulting.com" > dave@ boost-consulting.com< / a > , < a  class = "reference"  href = "mailto:jsiek@osl.iu.edu" > jsiek@ osl.iu.edu< / a > , < a  class = "last reference"  href = "mailto:witt@ive.uni-hannover.de" > witt@ ive.uni-hannover.de< / a > < / td > < / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Organization:< / th > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< td > < a  class = "first reference"  href = "http://www.boost-consulting.com" > Boost Consulting< / a > , Indiana University < a  class = "reference"  href = "http://www.osl.iu.edu" > Open Systems
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Lab< / a > , University of Hanover < a  class = "last reference"  href = "http://www.ive.uni-hannover.de" > Institute for Transport
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Railway Operation and Construction< / a > < / td > < / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Date:< / th > 
							 
						 
					
						
							
								
									
										
										
										
											2003-09-22 15:10:34 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< td > 2003-09-14< / td > < / tr > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< tr > < th  class = "docinfo-name" > Copyright:< / th > 
							 
						 
					
						
							
								
									
										
										
										
											2003-09-14 02:17:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< td > Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003. All rights reserved< / td > < / tr > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > abstract:< / th > < td  class = "field-body" > < / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								<!--  Version 1.1 of this ReStructuredText document corresponds to
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								n1530_, the paper accepted by the LWG. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003. All
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								rights reserved -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > Each specialization of the < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  class template is derived from
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								a specialization of < tt  class = "literal" > < span  class = "pre" > iterator_facade< / span > < / tt > . The core interface functions
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								expected by < tt  class = "literal" > < span  class = "pre" > iterator_facade< / span > < / tt >  are implemented in terms of the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt > 's < tt  class = "literal" > < span  class = "pre" > Base< / span > < / tt >  template parameter. A class derived
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								from < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  typically redefines some of the core
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								interface functions to adapt the behavior of the < tt  class = "literal" > < span  class = "pre" > Base< / span > < / tt >  type.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Whether the derived class models any of the standard iterator concepts
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								depends on the operations supported by the < tt  class = "literal" > < span  class = "pre" > Base< / span > < / tt >  type and which
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								core interface functions of < tt  class = "literal" > < span  class = "pre" > iterator_facade< / span > < / tt >  are redefined in the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > Derived< / span > < / tt >  class.< / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "contents topic"  id = "table-of-contents" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p  class = "topic-title" > < a  name = "table-of-contents" > Table of Contents< / a > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< ul  class = "simple" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference"  href = "#introduction"  id = "id3"  name = "id3" > Introduction< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference"  href = "#reference"  id = "id4"  name = "id4" > Reference< / a > < ul > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference"  href = "#iterator-adaptor-base-class-parameters"  id = "id5"  name = "id5" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  base class parameters< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference"  href = "#iterator-adaptor-usage"  id = "id6"  name = "id6" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  usage< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference"  href = "#iterator-adaptor-public-operations"  id = "id7"  name = "id7" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  public operations< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference"  href = "#iterator-adaptor-protected-member-functions"  id = "id8"  name = "id8" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  protected member functions< / a > < / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< li > < a  class = "reference"  href = "#iterator-adaptor-private-member-functions"  id = "id9"  name = "id9" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  private member functions< / a > < / li > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / li > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / ul > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "introduction" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h1 > < a  class = "toc-backref"  href = "#id3"  name = "introduction" > Introduction< / a > < / h1 > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								<!--  Version 1.2 of this ReStructuredText document corresponds to
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								n1530_, the paper accepted by the LWG for TR1. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003. All
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								rights reserved -->
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< p > The < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  class template adapts some < tt  class = "literal" > < span  class = "pre" > Base< / span > < / tt >  < a  class = "footnote-reference"  href = "#base"  id = "id1"  name = "id1" > < sup > 1< / sup > < / a > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								type to create a new iterator.  Instantiations of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								are derived from a corresponding instantiation of < tt  class = "literal" > < span  class = "pre" > iterator_facade< / span > < / tt > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								and implement the core behaviors in terms of the < tt  class = "literal" > < span  class = "pre" > Base< / span > < / tt >  type. In
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								essence, < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  merely forwards all operations to an
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								instance of the < tt  class = "literal" > < span  class = "pre" > Base< / span > < / tt >  type, which it stores as a member.< / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "footnote"  frame = "void"  id = "base"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< colgroup > < col  class = "label"  / > < col  / > < / colgroup > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr > < td  class = "label" > < a  class = "fn-backref"  href = "#id1"  name = "base" > [1]< / a > < / td > < td > The term " Base"  here does not refer to a base class and is
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								not meant to imply the use of derivation. We have followed the lead
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								of the standard library, which provides a base() function to access
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								the underlying iterator object of a < tt  class = "literal" > < span  class = "pre" > reverse_iterator< / span > < / tt >  adaptor.< / td > < / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > The user of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  creates a class derived from an
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								instantiation of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  and then selectively
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								redefines some of the core member functions described in the table
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								above. The < tt  class = "literal" > < span  class = "pre" > Base< / span > < / tt >  type need not meet the full requirements for an
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								iterator. It need only support the operations used by the core
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								interface functions of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  that have not been
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								redefined in the user's derived class.< / p > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< p > Several of the template parameters of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								to < tt  class = "literal" > < span  class = "pre" > use_default< / span > < / tt > . This allows the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								user to make use of a default parameter even when she wants to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								specify a parameter later in the parameter list.  Also, the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								defaults for the corresponding associated types are somewhat
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								complicated, so metaprogramming is required to compute them, and
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > use_default< / span > < / tt >  can help to simplify the implementation.  Finally,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								the identity of the < tt  class = "literal" > < span  class = "pre" > use_default< / span > < / tt >  type is not left unspecified
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								because specification helps to highlight that the < tt  class = "literal" > < span  class = "pre" > Reference< / span > < / tt > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								template parameter may not always be identical to the iterator's
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > reference< / span > < / tt >  type, and will keep users from making mistakes based on
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								that assumption.< / p > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "reference" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h1 > < a  class = "toc-backref"  href = "#id4"  name = "reference" > Reference< / a > < / h1 > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								<!--  Version 1.4 of this ReStructuredText document corresponds to
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								n1530_, the paper accepted by the LWG for TR1. -->
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								<!--  Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003. All
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								rights reserved. -->
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< pre  class = "literal-block" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								template < 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    class Derived
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  , class Base
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  , class Value        = use_default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  , class CategoryOrTraversal  = use_default
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  , class Reference  = use_default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  , class Difference = use_default
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class iterator_adaptor 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:13:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  : public iterator_facade< Derived, < em > V< / em > , < em > C< / em > , < em > R< / em > , < em > D< / em > >  // see < a  class = "reference"  href = "#base-parameters" > details< / a > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    friend class iterator_core_access;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 public:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    iterator_adaptor();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    explicit iterator_adaptor(Base iter);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Base base() const;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 protected:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Base const&  base_reference() const;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    Base&  base_reference();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 private: // Core iterator interface for iterator_facade.  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    typename iterator_adaptor::reference dereference() const;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    template < 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    class OtherDerived, class OtherIterator, class V, class C, class R, class D
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    >    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bool equal(iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D>  const&  x) const;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    void advance(typename iterator_adaptor::difference_type n);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    void increment();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    void decrement();
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    template < 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        class OtherDerived, class OtherIterator, class V, class C, class R, class D
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    >    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    typename iterator_adaptor::difference_type distance_to(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D>  const&  y) const;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 private:
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    Base m_iterator; // exposition only
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								};
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / pre > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:13:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< a  class = "target"  id = "base-parameters"  name = "base-parameters" > < / a > < div  class = "section"  id = "iterator-adaptor-base-class-parameters" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< h2 > < a  class = "toc-backref"  href = "#id5"  name = "iterator-adaptor-base-class-parameters" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  base class parameters< / a > < / h2 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > The < em > V< / em > , < em > C< / em > , < em > R< / em > , and < em > D< / em >  parameters of the < tt  class = "literal" > < span  class = "pre" > iterator_facade< / span > < / tt > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								used as a base class in the summary of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								above are defined as follows:< / p > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< pre  class = "literal-block" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< em > V< / em >  = if (Value is use_default)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          return iterator_traits< Base> ::value_type
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          return Value
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< em > C< / em >  = if (CategoryOrTraversal is use_default)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          return iterator_traversal< Base> ::type
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          return CategoryOrTraversal
							 
						 
					
						
							
								
									
										
										
										
											2003-09-14 02:17:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< em > R< / em >  = if (Reference is use_default)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          if (Value is use_default)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              return iterator_traits< Base> ::reference
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								              return Value& 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          return Reference
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< em > D< / em >  = if (Difference is use_default)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          return iterator_traits< Base> ::difference_type
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          return Difference
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / pre > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "iterator-adaptor-usage" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< h2 > < a  class = "toc-backref"  href = "#id6"  name = "iterator-adaptor-usage" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  usage< / a > < / h2 > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > The < tt  class = "literal" > < span  class = "pre" > Derived< / span > < / tt >  template parameter must be a publicly derived from
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt > .  In order for < tt  class = "literal" > < span  class = "pre" > Derived< / span > < / tt >  to model the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								iterator concepts corresponding to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > iterator_traits< Derived> ::iterator_category< / span > < / tt > , the expressions
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								involving < tt  class = "literal" > < span  class = "pre" > m_iterator< / span > < / tt >  in the specifications of those private
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								member functions of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  that may be called by
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > iterator_facade< Derived,< / span >  < span  class = "pre" > ``\< / span >  < span  class = "pre" > *V*\< / span > < / tt > , < tt  class = "literal" > < span  class = "pre" > \< / span >  < span  class = "pre" > *C*\< / span > < / tt > , < tt  class = "literal" > < span  class = "pre" > \< / span >  < span  class = "pre" > *R*\< / span > < / tt > , < tt  class = "literal" > < span  class = "pre" > \< / span > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< span  class = "pre" > *D*\< / span > < / tt > > `` in evaluating any valid expression involving < tt  class = "literal" > < span  class = "pre" > Derived< / span > < / tt > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								in those concepts' requirements.< / p > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "iterator-adaptor-public-operations" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< h2 > < a  class = "toc-backref"  href = "#id7"  name = "iterator-adaptor-public-operations" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  public operations< / a > < / h2 > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor();< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Requires:< / th > < td  class = "field-body" > The < tt  class = "literal" > < span  class = "pre" > Base< / span > < / tt >  type must be Default Constructible.< / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > An instance of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  with 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > m_iterator< / span > < / tt >  default constructed.< / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > explicit< / span >  < span  class = "pre" > iterator_adaptor(Base< / span >  < span  class = "pre" > iter);< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > An instance of < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  with
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tt  class = "literal" > < span  class = "pre" > m_iterator< / span > < / tt >  copy constructed from < tt  class = "literal" > < span  class = "pre" > iter< / span > < / tt > .< / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > Base< / span >  < span  class = "pre" > base()< / span >  < span  class = "pre" > const;< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > < tt  class = "literal" > < span  class = "pre" > m_iterator< / span > < / tt > < / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "iterator-adaptor-protected-member-functions" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< h2 > < a  class = "toc-backref"  href = "#id8"  name = "iterator-adaptor-protected-member-functions" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  protected member functions< / a > < / h2 > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > Base< / span >  < span  class = "pre" > const& < / span >  < span  class = "pre" > base_reference()< / span >  < span  class = "pre" > const;< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > A const reference to < tt  class = "literal" > < span  class = "pre" > m_iterator< / span > < / tt > .< / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > Base& < / span >  < span  class = "pre" > base_reference();< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > A non-const reference to < tt  class = "literal" > < span  class = "pre" > m_iterator< / span > < / tt > .< / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "section"  id = "iterator-adaptor-private-member-functions" > 
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:02:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< h2 > < a  class = "toc-backref"  href = "#id9"  name = "iterator-adaptor-private-member-functions" > < tt  class = "literal" > < span  class = "pre" > iterator_adaptor< / span > < / tt >  private member functions< / a > < / h2 > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > typename< / span >  < span  class = "pre" > iterator_adaptor::reference< / span >  < span  class = "pre" > dereference()< / span >  < span  class = "pre" > const;< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > < tt  class = "literal" > < span  class = "pre" > *m_iterator< / span > < / tt > < / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< pre  class = "literal-block" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								template < 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								class OtherDerived, class OtherIterator, class V, class C, class R, class D
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								>    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								bool equal(iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D>  const&  x) const;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / pre > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > < tt  class = "literal" > < span  class = "pre" > m_iterator< / span >  < span  class = "pre" > ==< / span >  < span  class = "pre" > x.base()< / span > < / tt > < / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > void< / span >  < span  class = "pre" > advance(typename< / span >  < span  class = "pre" > iterator_adaptor::difference_type< / span >  < span  class = "pre" > n);< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Effects:< / th > < td  class = "field-body" > < tt  class = "literal" > < span  class = "pre" > m_iterator< / span >  < span  class = "pre" > +=< / span >  < span  class = "pre" > n;< / span > < / tt > < / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > void< / span >  < span  class = "pre" > increment();< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Effects:< / th > < td  class = "field-body" > < tt  class = "literal" > < span  class = "pre" > ++m_iterator;< / span > < / tt > < / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< p > < tt  class = "literal" > < span  class = "pre" > void< / span >  < span  class = "pre" > decrement();< / span > < / tt > < / p > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Effects:< / th > < td  class = "field-body" > < tt  class = "literal" > < span  class = "pre" > --m_iterator;< / span > < / tt > < / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< pre  class = "literal-block" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								template < 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    class OtherDerived, class OtherIterator, class V, class C, class R, class D
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								>    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typename iterator_adaptor::difference_type distance_to(
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    iterator_adaptor< OtherDerived, OtherIterator, V, C, R, D>  const&  y) const;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / pre > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< table  class = "field-list"  frame = "void"  rules = "none" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-name"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< col  class = "field-body"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tbody  valign = "top" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< tr  class = "field" > < th  class = "field-name" > Returns:< / th > < td  class = "field-body" > < tt  class = "literal" > < span  class = "pre" > y.base()< / span >  < span  class = "pre" > -< / span >  < span  class = "pre" > m_iterator< / span > < / tt > < / td > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tr > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / tbody > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / table > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2003-09-14 02:17:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								< hr  class = "footer"  / > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< div  class = "footer" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< a  class = "reference"  href = "iterator_adaptor.rst" > View document source< / a > .
							 
						 
					
						
							
								
									
										
										
										
											2003-11-24 05:13:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Generated on: 2003-11-24 05:11 UTC.
							 
						 
					
						
							
								
									
										
										
										
											2003-09-14 02:17:41 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Generated by < a  class = "reference"  href = "http://docutils.sourceforge.net/" > Docutils< / a >  from < a  class = "reference"  href = "http://docutils.sourceforge.net/rst.html" > reStructuredText< / a >  source.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / div > 
							 
						 
					
						
							
								
									
										
										
										
											2003-08-05 19:48:41 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								< / body > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								< / html >