forked from boostorg/iterator
some minor edits
[SVN r20124]
This commit is contained in:
@ -3,13 +3,13 @@
|
|||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<meta name="generator" content="Docutils 0.3.1: http://docutils.sourceforge.net/" />
|
<meta name="generator" content="Docutils 0.2.8: http://docutils.sourceforge.net/" />
|
||||||
<title>New Iterator Concepts</title>
|
<title>New Iterator Concepts</title>
|
||||||
<meta name="author" content="David Abrahams, Jeremy Siek, Thomas Witt" />
|
<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" />
|
<meta name="organization" content="Boost Consulting, Indiana University Open Systems Lab, University of Hanover Institute for Transport Railway Operation and Construction" />
|
||||||
<meta name="date" content="2003-08-14" />
|
<meta name="date" content="2003-09-14" />
|
||||||
<meta name="copyright" content="Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003. All rights reserved" />
|
<meta name="copyright" content="Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003. All rights reserved" />
|
||||||
<link rel="stylesheet" href="../../../rst.css" type="text/css" />
|
<link rel="stylesheet" href="default.css" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="new-iterator-concepts">
|
<div class="document" id="new-iterator-concepts">
|
||||||
@ -25,7 +25,7 @@
|
|||||||
<tr><th class="docinfo-name">Organization:</th>
|
<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>
|
<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>
|
<tr><th class="docinfo-name">Date:</th>
|
||||||
<td>2003-08-14</td></tr>
|
<td>2003-09-14</td></tr>
|
||||||
<tr class="field"><th class="docinfo-name">Number:</th><td class="field-body"><strong>This document is a revised version of the official</strong> N1477=03-0060</td>
|
<tr class="field"><th class="docinfo-name">Number:</th><td class="field-body"><strong>This document is a revised version of the official</strong> N1477=03-0060</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr><th class="docinfo-name">Copyright:</th>
|
<tr><th class="docinfo-name">Copyright:</th>
|
||||||
@ -92,7 +92,7 @@ geared towards iterator traversal (hence the category names), while
|
|||||||
requirements that address value access sneak in at various places. The
|
requirements that address value access sneak in at various places. The
|
||||||
following table gives a summary of the current value access
|
following table gives a summary of the current value access
|
||||||
requirements in the iterator categories.</p>
|
requirements in the iterator categories.</p>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="31%" />
|
<col width="31%" />
|
||||||
<col width="69%" />
|
<col width="69%" />
|
||||||
@ -326,7 +326,7 @@ for the value type <tt class="literal"><span class="pre">T</span></tt> if the fo
|
|||||||
respect the stated semantics. <tt class="literal"><span class="pre">U</span></tt> is the type of any specified
|
respect the stated semantics. <tt class="literal"><span class="pre">U</span></tt> is the type of any specified
|
||||||
member of type <tt class="literal"><span class="pre">T</span></tt>.</p>
|
member of type <tt class="literal"><span class="pre">T</span></tt>.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="34%" />
|
<col width="34%" />
|
||||||
<col width="30%" />
|
<col width="30%" />
|
||||||
@ -377,7 +377,7 @@ semantics. In addition, a model of <em>Writable Iterator</em> must include
|
|||||||
in its documentation the <em>set of value types</em> that it allows for
|
in its documentation the <em>set of value types</em> that it allows for
|
||||||
output.</p>
|
output.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="42%" />
|
<col width="42%" />
|
||||||
<col width="27%" />
|
<col width="27%" />
|
||||||
@ -413,7 +413,7 @@ value types of <tt class="literal"><span class="pre">X</span></tt></td>
|
|||||||
if the following expressions are valid and respect the stated
|
if the following expressions are valid and respect the stated
|
||||||
semantics.</p>
|
semantics.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="38%" />
|
<col width="38%" />
|
||||||
<col width="14%" />
|
<col width="14%" />
|
||||||
@ -445,7 +445,7 @@ semantics.</p>
|
|||||||
<p>The <em>Readable Lvalue Iterator</em> concept adds the requirement that the
|
<p>The <em>Readable Lvalue Iterator</em> concept adds the requirement that the
|
||||||
<tt class="literal"><span class="pre">reference</span></tt> type be a reference to the value type of the iterator.</p>
|
<tt class="literal"><span class="pre">reference</span></tt> type be a reference to the value type of the iterator.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="35%" />
|
<col width="35%" />
|
||||||
<col width="32%" />
|
<col width="32%" />
|
||||||
@ -482,7 +482,7 @@ cv-qualification</td>
|
|||||||
<tt class="literal"><span class="pre">reference</span></tt> type be a non-const reference to the value type of the
|
<tt class="literal"><span class="pre">reference</span></tt> type be a non-const reference to the value type of the
|
||||||
iterator.</p>
|
iterator.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="45%" />
|
<col width="45%" />
|
||||||
<col width="55%" />
|
<col width="55%" />
|
||||||
@ -518,7 +518,7 @@ type <tt class="literal"><span class="pre">X</span></tt>, <tt class="literal"><s
|
|||||||
concept if the following expressions are valid and respect the stated
|
concept if the following expressions are valid and respect the stated
|
||||||
semantics.</p>
|
semantics.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="27%" />
|
<col width="27%" />
|
||||||
<col width="38%" />
|
<col width="38%" />
|
||||||
@ -555,7 +555,7 @@ semantics.</p>
|
|||||||
concept if the following expressions are valid and respect the stated
|
concept if the following expressions are valid and respect the stated
|
||||||
semantics.</p>
|
semantics.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="33%" />
|
<col width="33%" />
|
||||||
<col width="27%" />
|
<col width="27%" />
|
||||||
@ -600,7 +600,7 @@ its domain</td>
|
|||||||
concept if the following expressions are valid and respect the stated
|
concept if the following expressions are valid and respect the stated
|
||||||
semantics.</p>
|
semantics.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="39%" />
|
<col width="39%" />
|
||||||
<col width="37%" />
|
<col width="37%" />
|
||||||
@ -646,7 +646,7 @@ the distance between iterators</td>
|
|||||||
Iterator</em> concept if the following expressions are valid and respect
|
Iterator</em> concept if the following expressions are valid and respect
|
||||||
the stated semantics.</p>
|
the stated semantics.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="28%" />
|
<col width="28%" />
|
||||||
<col width="36%" />
|
<col width="36%" />
|
||||||
@ -690,7 +690,7 @@ the stated semantics. In the table below, <tt class="literal"><span class="pre"
|
|||||||
<tt class="literal"><span class="pre">iterator_traits<X>::difference_type</span></tt> and <tt class="literal"><span class="pre">n</span></tt> represents a
|
<tt class="literal"><span class="pre">iterator_traits<X>::difference_type</span></tt> and <tt class="literal"><span class="pre">n</span></tt> represents a
|
||||||
constant object of type <tt class="literal"><span class="pre">Distance</span></tt>.</p>
|
constant object of type <tt class="literal"><span class="pre">Distance</span></tt>.</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<table border class="table">
|
<table class="table" frame="border" rules="all">
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col width="26%" />
|
<col width="26%" />
|
||||||
<col width="33%" />
|
<col width="33%" />
|
||||||
@ -817,7 +817,8 @@ struct readable_writable_iterator_tag
|
|||||||
: virtual readable_iterator_tag
|
: virtual readable_iterator_tag
|
||||||
, virtual writable_iterator_tag
|
, virtual writable_iterator_tag
|
||||||
, virtual swappable_iterator_tag { };
|
, virtual swappable_iterator_tag { };
|
||||||
struct readable_lvalue_iterator_tag { };
|
struct readable_lvalue_iterator_tag
|
||||||
|
: virtual readable_iterator_tag { };
|
||||||
struct writable_lvalue_iterator_tag
|
struct writable_lvalue_iterator_tag
|
||||||
: virtual public readable_writable_iterator_tag
|
: virtual public readable_writable_iterator_tag
|
||||||
, virtual public readable_lvalue_iterator_tag { };
|
, virtual public readable_lvalue_iterator_tag { };
|
||||||
@ -869,6 +870,12 @@ inherit-category(access-tag, traversal-tag) =
|
|||||||
else
|
else
|
||||||
return null_category_tag;
|
return null_category_tag;
|
||||||
</pre>
|
</pre>
|
||||||
|
<p>If the argument for the template parameter <tt class="literal"><span class="pre">AccessTag</span></tt> is not
|
||||||
|
convertible to one or more of: <tt class="literal"><span class="pre">readable_iterator_tag</span></tt>,
|
||||||
|
<tt class="literal"><span class="pre">writable_iterator_tag</span></tt>, <tt class="literal"><span class="pre">swappable_iterator_tag</span></tt>, or if the
|
||||||
|
argument for <tt class="literal"><span class="pre">TraversalTag</span></tt> is not convertible to
|
||||||
|
<tt class="literal"><span class="pre">incrementable_iterator_tag</span></tt> then the behavior of <tt class="literal"><span class="pre">iterator_tag</span></tt>
|
||||||
|
is not defined.</p>
|
||||||
<p>The <tt class="literal"><span class="pre">access_category</span></tt> and <tt class="literal"><span class="pre">traversal_category</span></tt> class templates are
|
<p>The <tt class="literal"><span class="pre">access_category</span></tt> and <tt class="literal"><span class="pre">traversal_category</span></tt> class templates are
|
||||||
traits classes. For iterators whose
|
traits classes. For iterators whose
|
||||||
<tt class="literal"><span class="pre">iterator_traits<Iter>::iterator_category</span></tt> type is <tt class="literal"><span class="pre">iterator_tag</span></tt>,
|
<tt class="literal"><span class="pre">iterator_traits<Iter>::iterator_category</span></tt> type is <tt class="literal"><span class="pre">iterator_tag</span></tt>,
|
||||||
@ -942,11 +949,5 @@ LocalWords: TraversalTag typename lvalues DWA Hmm JGS -->
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr class="footer" />
|
|
||||||
<div class="footer">
|
|
||||||
<a class="reference" href="new-iter-concepts.rst">View document source</a>.
|
|
||||||
Generated on: 2003-09-14 02:16 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>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -625,7 +625,8 @@ Addition to [lib.iterator.synopsis]
|
|||||||
: virtual readable_iterator_tag
|
: virtual readable_iterator_tag
|
||||||
, virtual writable_iterator_tag
|
, virtual writable_iterator_tag
|
||||||
, virtual swappable_iterator_tag { };
|
, virtual swappable_iterator_tag { };
|
||||||
struct readable_lvalue_iterator_tag { };
|
struct readable_lvalue_iterator_tag
|
||||||
|
: virtual readable_iterator_tag { };
|
||||||
struct writable_lvalue_iterator_tag
|
struct writable_lvalue_iterator_tag
|
||||||
: virtual public readable_writable_iterator_tag
|
: virtual public readable_writable_iterator_tag
|
||||||
, virtual public readable_lvalue_iterator_tag { };
|
, virtual public readable_lvalue_iterator_tag { };
|
||||||
@ -679,6 +680,12 @@ pseudo-code.
|
|||||||
else
|
else
|
||||||
return null_category_tag;
|
return null_category_tag;
|
||||||
|
|
||||||
|
If the argument for the template parameter ``AccessTag`` is not
|
||||||
|
convertible to one or more of: ``readable_iterator_tag``,
|
||||||
|
``writable_iterator_tag``, ``swappable_iterator_tag``, or if the
|
||||||
|
argument for ``TraversalTag`` is not convertible to
|
||||||
|
``incrementable_iterator_tag`` then the behavior of ``iterator_tag``
|
||||||
|
is not defined.
|
||||||
|
|
||||||
The ``access_category`` and ``traversal_category`` class templates are
|
The ``access_category`` and ``traversal_category`` class templates are
|
||||||
traits classes. For iterators whose
|
traits classes. For iterators whose
|
||||||
|
Reference in New Issue
Block a user