From 1033aeb1861f8b62e43977117201c90fde343826 Mon Sep 17 00:00:00 2001
From: Dave Abrahams How would you fill up a vector with the numbers zero
through one hundred using std::copy()? The only iterator
operation missing from builtin integer types is an
operator*() that returns the current value of the integer.
The counting iterator adaptor adds this crucial piece of
functionality to whatever type it wraps. One can use the
counting iterator adaptor not only with integer types, but with
-any type that is Incrementable (see type requirements
-below). counting_iterator adapts an object by adding an operator* that
+returns the current value of the object. All other iterator operations
+are forwarded to the adapted object. counting_iterator adapts an object by adding an operator* that
-returns the current value of the object. All other iterator operations
-are forwarded to the adapted object. If the Difference argument is use_default then the
-difference_type member is an implementation defined signed
-integral type. Otherwise difference_type is Difference. If CategoryOrTraversal is not use_default then the member
iterator_category is CategoryOrTraversal. Otherwise, if
-Incrementable is a numeric type then iterator_category is a
-type convertible to random_access_iterator_tag. If
-Incrementable is not a numeric type then iterator_category is
-iterator_traversal<Incrementable>::type. The Incrementable type must be Default Constructible, Copy
+ Incrementable must be Default Constructible, Copy
Constructible, and Assignable. If iterator_category is convertible to forward_iterator_tag or
-forward_traversal_tag then the following expressions must be valid: If iterator_category is convertible to forward_iterator_tag
+or forward_traversal_tag, the following must be well-formed: If iterator_category is convertible to
-bidirectional_iterator_tag or bidirectional_traversal_tag then
-pre-decrement is required: If iterator_category is convertible to
-random_access_iterator_tag or random_access_traversal_tag then
-these additional expressions are also required: counting_iterator models Readable Lvalue Iterator. In addition,
-counting_iterator models the concepts corresponding to the
-iterator tags that counting_iterator::iterator_category is
-convertible to. Specializations of counting_iterator model Readable Lvalue
+Iterator. In addition, they model the concepts corresponding to the
+iterator tags to which their iterator_category is convertible. The source code for this example can be found here.
+Date:
-2004-01-12 2004-01-13
@@ -36,21 +36,21 @@ Railway Operation and Construction
Copyright:
Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2003. All rights reserved abstract: How would you fill up a vector with the numbers zero
+
-abstract:
+any incrementable type.
+
@@ -90,53 +90,53 @@ class counting_iterator
};
counting_iterator requirements
-
Incrementable i, j;
-++i // pre-increment
-i == j // operator equal
+++i; // pre-increment
+i == j; // operator equal
--i
counting_iterator::difference_type n;
-i += n
-n = i - j
-i < j
+i += n;
+n = i - j;
+i < j;
counting_iterator models
-counting_iterator operations
@@ -258,10 +258,10 @@ indirectly printing out the numbers from 0 to 7
+
diff --git a/doc/facade-and-adaptor.html b/doc/facade-and-adaptor.html
index 6957095..b709f3b 100755
--- a/doc/facade-and-adaptor.html
+++ b/doc/facade-and-adaptor.html
@@ -3,7 +3,7 @@
-
+
-+
@@ -725,7 +725,7 @@ is a constant object of a random access traversal iterator type interoperable with X. iterator_facade Core Operations
-+
@@ -1515,23 +1515,23 @@ else reverse_iterator requirements
-The base Iterator must be a model of Bidirectional Traversal -Iterator and Readable Iterator.
+Iterator must be a model of Bidirectional Traversal Iterator +and Readable Iterator.
reverse_iterator models
-reverse_iterator models the same standard traversal and access -iterator concepts that the Iterator argument models. In addition, -reverse_iterator models the old iterator concepts specified in the -following table, depnding on what the Iterator argument models.
-+
A specialization of reverse_iterator models the same standard +traversal and access iterator concepts modeled by its Iterator +argument. In addition, it models the old iterator concepts +specified in the following table:
+
- -- + + If Iterator models -then reverse_iterator models +@@ -1728,7 +1728,7 @@ concept that is modeled by the IteratorIf transform_iterator is a model of Readable Lvalue Iterator then it models the following original iterator concepts depending on what the Iterator argument models. - If I models +then reverse_iterator<I> models +
@@ -1919,7 +1919,7 @@ Input Iterator. The concepts that filter_iterator models are dependent on which concepts the Iterator argument models, as specified in the following tables.
-+
-
@@ -1938,7 +1938,7 @@ following tables. +
-
@@ -1960,7 +1960,7 @@ following tables. +
@@ -2127,53 +2127,53 @@ class counting_iterator }; If the Difference argument is use_default then the -difference_type member is an implementation defined signed -integral type. Otherwise difference_type is Difference.
+difference_type member is an unspecified signed integral +type. Otherwise difference_type is Difference.If CategoryOrTraversal is not use_default then the member iterator_category is CategoryOrTraversal. Otherwise, if -Incrementable is a numeric type then iterator_category is a -type convertible to random_access_iterator_tag. If -Incrementable is not a numeric type then iterator_category is -iterator_traversal<Incrementable>::type.
+Incrementable is a numberic type iterator_category is a +type convertible to random_access_iterator_tag. Otherwise, +iterator_category is unspecified, and the counting_iterator +specialization models the same iterator traversal concepts modeled +by Incrementable.
- [Note: implementers are encouraged to provide an implementation of
-- operator- and a difference_type that avoids overflows in +
- operator- and a difference_type that avoid overflows in the cases when the Incrementable type is a numeric type.]
counting_iterator requirements
-The Incrementable type must be Default Constructible, Copy +
Incrementable must be Default Constructible, Copy Constructible, and Assignable.
-If iterator_category is convertible to forward_iterator_tag or -forward_traversal_tag then the following expressions must be valid:
+If iterator_category is convertible to forward_iterator_tag +or forward_traversal_tag, the following must be well-formed:
Incrementable i, j; -++i // pre-increment -i == j // operator equal +++i; // pre-increment +i == j; // operator equalIf iterator_category is convertible to -bidirectional_iterator_tag or bidirectional_traversal_tag then -pre-decrement is required:
+bidirectional_iterator_tag or bidirectional_traversal_tag, +the following expression must also be well-formed:--iIf iterator_category is convertible to -random_access_iterator_tag or random_access_traversal_tag then -these additional expressions are also required:
+random_access_iterator_tag or random_access_traversal_tag, +the following must must also be valid:counting_iterator::difference_type n; -i += n -n = i - j -i < j +i += n; +n = i - j; +i < j;counting_iterator models
-counting_iterator models Readable Lvalue Iterator. In addition, -counting_iterator models the concepts corresponding to the -iterator tags that counting_iterator::iterator_category is -convertible to.
+Specializations of counting_iterator model Readable Lvalue +Iterator. In addition, they model the concepts corresponding to the +iterator tags to which their iterator_category is convertible.
counting_iterator operations
@@ -2282,7 +2282,7 @@ private:function_output_iterator requirements
-The UnaryFunction must be Assignable, Copy Constructible.
+UnaryFunction must be Assignable and Copy Constructible.
-function_output_iterator models
@@ -2342,10 +2342,10 @@ LocalWords: OtherIncrementable Coplien -->
+
diff --git a/doc/reverse_iterator.html b/doc/reverse_iterator.html index dd99e92..3043d81 100644 --- a/doc/reverse_iterator.html +++ b/doc/reverse_iterator.html @@ -3,7 +3,7 @@ - +Reverse Iterator @@ -97,23 +97,23 @@ elsereverse_iterator requirements
-The base Iterator must be a model of Bidirectional Traversal -Iterator and Readable Iterator.
+Iterator must be a model of Bidirectional Traversal Iterator +and Readable Iterator.
reverse_iterator models
-reverse_iterator models the same standard traversal and access -iterator concepts that the Iterator argument models. In addition, -reverse_iterator models the old iterator concepts specified in the -following table, depnding on what the Iterator argument models.
-+
A specialization of reverse_iterator models the same standard +traversal and access iterator concepts modeled by its Iterator +argument. In addition, it models the old iterator concepts +specified in the following table:
+
- -- + + If Iterator models -then reverse_iterator models +@@ -274,10 +274,10 @@ sequence in double-reversed (normal) order: hello world! If I models +then reverse_iterator<I> models The source code for this example can be found here.
-
+