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" / >
2004-01-12 02:49:55 +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" / >
2004-01-12 02:49:55 +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, div.admonition {
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,
div.admonition 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.sidebar {
margin-left: 1em ;
border: medium outset ;
padding: 0em 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
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.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
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 {
white-space: nowrap }
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 >
2004-01-12 02:49:55 +00:00
< hr class = "footer" / >
< div class = "footer" >
< a class = "reference" href = "iterator_adaptor.rst" > View document source< / a > .
Generated on: 2004-01-12 02:46 UTC.
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 >