diff --git a/doc/counting_iterator.html b/doc/counting_iterator.html index 6f9e8b4..c7debc3 100644 --- a/doc/counting_iterator.html +++ b/doc/counting_iterator.html @@ -3,7 +3,7 @@ - + Counting Iterator @@ -208,5 +208,11 @@ indirectly printing out the numbers from 0 to 7 + + diff --git a/doc/facade-and-adaptor.html b/doc/facade-and-adaptor.html index ee34d90..2084dd0 100755 --- a/doc/facade-and-adaptor.html +++ b/doc/facade-and-adaptor.html @@ -56,82 +56,82 @@ by adapting other iterators.

Table of Contents

-

Motivation

+

Motivation

Iterators play an important role in modern C++ programming. The iterator is the central abstraction of the algorithms of the Standard Library, allowing algorithms to be re-used in in a wide variety of @@ -226,15 +226,15 @@ applies some user-specified function during the dereference of the iterator.

-

Impact on the Standard

+

Impact on the Standard

This proposal is purely an addition to the C++ standard library. However, note that this proposal relies on the proposal for New Iterator Concepts.

-

Design

+

Design

-

Iterator Concepts

+

Iterator Concepts

This proposal is formulated in terms of the new iterator concepts as proposed in n1550, since user-defined and especially adapted iterators suffer from the well known categorization problems that are @@ -244,7 +244,7 @@ is a direct mapping between new and old categories. This proposal could be reformulated using this mapping if n1550 was not accepted.

-

Interoperability

+

Interoperability

The question of iterator interoperability is poorly addressed in the current standard. There are currently two defect reports that are concerned with interoperability issues.

@@ -264,7 +264,7 @@ fixes the issues raised in 280. It provides the desired interoperability without introducing unwanted overloads.

-

Iterator Facade

+

Iterator Facade

-

Class template indirect_iterator

+

Class template indirect_iterator

 template <
     class Iterator
@@ -1316,7 +1325,7 @@ satisfies the requirements of the concepts modeled by the indirect
 iterator as specified in the models section.

-

indirect_iterator requirements

+

indirect_iterator requirements

The Iterator argument shall meet the requirements of Readable Iterator. The CategoryOrTraversal argument shall be one of the standard iterator tags or use_default. If CategoryOrTraversal @@ -1332,7 +1341,7 @@ is not use_default, as implied default for the value_type member.

-

indirect_iterator models

+

indirect_iterator models

If CategoryOrTraversal is a standard iterator tag, indirect_iterator is a model of the iterator concept corresponding to the tag, otherwise indirect_iterator satisfies the requirements @@ -1346,7 +1355,7 @@ the Iterator argument.

indirect_iterator models Lvalue Iterator.

-

indirect_iterator operations

+

indirect_iterator operations

indirect_iterator();

@@ -1404,13 +1413,13 @@ indirect_iterator(
-

Reverse iterator

+

Reverse iterator

The reverse iterator adaptor flips the direction of a base iterator's motion. Invoking operator++() moves the base iterator backward and invoking operator--() moves the base iterator forward.

-

Class template reverse_iterator

+

Class template reverse_iterator

 template <class Iterator>
 class reverse_iterator
@@ -1433,19 +1442,19 @@ private:
 
-

reverse_iterator requirements

+

reverse_iterator requirements

The base Iterator must be a model of Bidirectional Traversal Iterator and Readable Iterator.

-

reverse_iterator models

+

reverse_iterator models

reverse_iterator models Bidirectional Traversal Iterator and Readable Iterator. In addition, reverse_iterator models the same standard iterator access concepts that the Iterator argument models.

@@ -1521,14 +1530,14 @@ return *..tmp;
-

Transform iterator

+

Transform iterator

The transform iterator adapts an iterator by applying some function object to the result of dereferencing the iterator. In other words, the operator* of the transform iterator first dereferences the base iterator, passes the result of this to the function object, and then returns the result.

-

Class template transform_iterator

+

Class template transform_iterator

 template <class UnaryFunction,
@@ -1559,7 +1568,7 @@ private:
 
-

transform_iterator requirements

+

transform_iterator requirements

The type UnaryFunction must be Assignable, Copy Constructible, and the expression f(*i) must be valid where f is an object of type UnaryFunction, i is an object of type Iterator, and @@ -1568,7 +1577,7 @@ where the type of f(*i) must b

The type Iterator must at least model Readable Iterator.

-

transform_iterator models

+

transform_iterator models

The resulting transform_iterator models the most refined of the following options that is also modeled by Iterator.

@@ -1586,7 +1595,7 @@ concept that is modeled by Iterator The value_type is remove_cv<remove_reference<reference> >::type.

@@ -1665,7 +1674,7 @@ transform_iterator(
-

Filter iterator

+

Filter iterator

The filter iterator adaptor creates a view of an iterator range in which some elements of the range are skipped over. A predicate function object controls which elements are skipped. When the @@ -1677,7 +1686,7 @@ of the underlying range. Therefore the constructor of the filter iterator takes two iterator parameters: the position for the filtered iterator and the end of the range.

-

Class template filter_iterator

+

Class template filter_iterator

 template <class Predicate, class Iterator>
 class filter_iterator
@@ -1713,7 +1722,7 @@ corresponding to each standard concept modeled by 
 
-

filter_iterator requirements

+

filter_iterator requirements

The Predicate argument must be Assignable, Copy Constructible, and the expression p(x) must be valid where p is an object of type Predicate, x is an object of type @@ -1724,7 +1733,7 @@ Iterator and Single Pass Iterator or it shall meet the requirements of Input Iterator.

-

filter_iterator models

+

filter_iterator models

The concepts that filter_iterator models are dependent on what concepts the Iterator argument models, as specified in the following tables.

@@ -1793,7 +1802,7 @@ following tables.

-

filter_iterator operations

+

filter_iterator operations

In addition to those operations required by the concepts that filter_iterator models, filter_iterator provides the following operations.

@@ -1903,11 +1912,11 @@ or m_pred(*m_iter) -

Counting iterator

+

Counting iterator

counting_iterator adapts an arithmetic type, such as int, by adding an operator* that returns the current value of the object.

-

Class template counting_iterator

+

Class template counting_iterator

 template <
     class Incrementable
@@ -1932,13 +1941,13 @@ the cases when the Incrementable
 
-

counting_iterator requirements

+

counting_iterator requirements

The Incrementable type must be Default Constructible, Copy Constructible, and Assignable. The default distance is an implementation defined signed integral type.

-

counting_iterator models

+

counting_iterator models

counting_iterator models Readable Lvalue Iterator.

Furthermore, if you wish to create a counting iterator that is a Forward Traversal Iterator, then the following expressions must be valid:

@@ -1963,7 +1972,7 @@ i < j
-

counting_iterator operations

+

counting_iterator operations

counting_iterator();

@@ -2022,7 +2031,7 @@ constructed from x.
-

Function output iterator

+

Function output iterator

The function output iterator adaptor makes it easier to create custom output iterators. The adaptor takes a unary function and creates a model of Output Iterator. Each item assigned to the output iterator is @@ -2031,7 +2040,7 @@ iterator is that creating a conforming output iterator is non-trivial, particularly because the proper implementation usually requires a proxy object.

-

Class template function_output_iterator

+

Class template function_output_iterator

 template <class UnaryFunction>
 class function_output_iterator {
@@ -2058,7 +2067,7 @@ public:
 
-

function_output_iterator requirements

+

function_output_iterator requirements

The UnaryFunction must be Assignable, Copy Constructible, and the expression f(x) must be valid, where f is an object of type UnaryFunction and x is an object of a type accepted by f. @@ -2066,7 +2075,7 @@ The resulting function_output_iterator

-

function_output_iterator operations

+

function_output_iterator operations

explicit function_output_iterator(const UnaryFunction& f = UnaryFunction());

@@ -2107,7 +2116,7 @@ a copy of the unary function f
-

function_output_iterator::output_proxy operations

+

function_output_iterator::output_proxy operations

output_proxy(UnaryFunction& f);

@@ -2145,7 +2154,7 @@ LocalWords: OtherIncrementable Coplien --> diff --git a/doc/filter_iterator.html b/doc/filter_iterator.html index 0aa7457..4a8139e 100644 --- a/doc/filter_iterator.html +++ b/doc/filter_iterator.html @@ -3,7 +3,7 @@ - +Filter Iterator @@ -108,7 +108,7 @@ Input Iterator.

The concepts that filter_iterator models are dependent on what concepts the Iterator argument models, as specified in the following tables.

-
+
@@ -127,7 +127,7 @@ following tables.

- +
@@ -149,7 +149,7 @@ following tables.

- +
@@ -374,5 +374,11 @@ int main() + + diff --git a/doc/function_output_iterator.html b/doc/function_output_iterator.html index ec724b3..f11ac05 100644 --- a/doc/function_output_iterator.html +++ b/doc/function_output_iterator.html @@ -3,7 +3,7 @@ - +Function Output Iterator @@ -191,5 +191,11 @@ int main(int, char*[]) + + diff --git a/doc/iterator_adaptor.html b/doc/iterator_adaptor.html index 2914c61..218c193 100644 --- a/doc/iterator_adaptor.html +++ b/doc/iterator_adaptor.html @@ -3,240 +3,13 @@ - +Iterator Adaptor - +
@@ -422,8 +195,8 @@ iterator concepts corresponding to iterator_traits<Derived>::iterator_category, the expressions involving m_iterator in the specifications of those private member functions of iterator_adaptor that may be called by -iterator_facade<Derived, ``\ *V*\, \ *C*\, \ *R*\, \ -*D*\>`` in evaluating any valid expression involving Derived +iterator_facade<Derived, V, C, R, D> +in evaluating any valid expression involving Derived in those concepts' requirements.

@@ -551,10 +324,10 @@ typename iterator_adaptor::difference_type distance_to(
- + diff --git a/doc/iterator_adaptor_ref.rst b/doc/iterator_adaptor_ref.rst index 384f147..4327bbe 100644 --- a/doc/iterator_adaptor_ref.rst +++ b/doc/iterator_adaptor_ref.rst @@ -92,8 +92,8 @@ iterator concepts corresponding to ``iterator_traits::iterator_category``, the expressions involving ``m_iterator`` in the specifications of those private member functions of ``iterator_adaptor`` that may be called by -``iterator_facade`` in evaluating any valid expression involving ``Derived`` +``iterator_facade`` +in evaluating any valid expression involving ``Derived`` in those concepts' requirements. ``iterator_adaptor`` public operations diff --git a/doc/permutation_iterator.html b/doc/permutation_iterator.html index a2f631c..fead95c 100644 --- a/doc/permutation_iterator.html +++ b/doc/permutation_iterator.html @@ -3,7 +3,7 @@ - + Permutation Iterator @@ -211,5 +211,11 @@ Iterate backward with stride 2 : 6 8 + + diff --git a/doc/reverse_iterator.html b/doc/reverse_iterator.html index fed8ba7..12d5b05 100644 --- a/doc/reverse_iterator.html +++ b/doc/reverse_iterator.html @@ -3,7 +3,7 @@ - + Reverse Iterator diff --git a/doc/transform_iterator.html b/doc/transform_iterator.html index 8d7664c..9d16f44 100644 --- a/doc/transform_iterator.html +++ b/doc/transform_iterator.html @@ -3,7 +3,7 @@ - + Transform Iterator @@ -251,5 +251,11 @@ adding 4 to each element in the array: + +