Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 9 additions & 12 deletions source/iterators.tex
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@
resulting in a value of some object type
\tcode{T},
called the
\term{value type}
\defn{value type}
of the iterator.
An output iterator \tcode{i} has a non-empty set of types that are
\defn{writable} to the iterator;
Expand All @@ -477,7 +477,7 @@
For every iterator type
\tcode{X},
there is a corresponding signed integer-like type\iref{iterator.concept.winc} called the
\term{difference type}
\defn{difference type}
of the iterator.

\pnum
Expand Down Expand Up @@ -556,15 +556,13 @@
Just as a regular pointer to an array guarantees that there is a pointer value pointing past the last element
of the array, so for any iterator type there is an iterator value that points past the last element of a
corresponding sequence.
These values are called
\term{past-the-end}
values.
Such a value is called a \defnadj{past-the-end}{value}.
Values of an iterator
\tcode{i}
for which the expression
\tcode{*i}
is defined are called
\term{dereferenceable}.
\defn{dereferenceable}.
The library never assumes that past-the-end values are dereferenceable.
Iterators can also have singular values that are not associated with any
sequence.
Expand Down Expand Up @@ -594,7 +592,7 @@

\pnum
Most of the library's algorithmic templates that operate on data structures have
interfaces that use ranges. A \term{range} is an iterator and a \term{sentinel}
interfaces that use ranges. A \defn{range} is an iterator and a \defn{sentinel}
that designate the beginning and end of the computation, or an iterator and a
count that designate the beginning and the number of elements to which the
computation is to be applied.\footnote{The sentinel denoting the end of a range
Expand Down Expand Up @@ -644,9 +642,8 @@
previously obtained from that iterator.

\pnum
An
\term{invalid}
iterator is an iterator that may be singular.\footnote{This definition applies to pointers, since pointers are iterators.
An \defnadj{invalid}{iterator}
is an iterator that may be singular.\footnote{This definition applies to pointers, since pointers are iterators.
The effect of dereferencing an iterator that has been invalidated
is undefined.
}
Expand Down Expand Up @@ -1404,7 +1401,7 @@

\pnum
Let \tcode{i} be an object of type \tcode{I}. When \tcode{i} is in the domain of
both pre- and post-increment, \tcode{i} is said to be \term{incrementable}.
both pre- and post-increment, \tcode{i} is said to be \defn{incrementable}.
\tcode{I} models \tcode{\libconcept{weakly_incrementable}<I>} only if
\begin{itemize}
\item The expressions \tcode{++i} and \tcode{i++} have the same domain.
Expand Down Expand Up @@ -2590,7 +2587,7 @@
argument, so that the function can select the most efficient algorithm at compile time.
To facilitate this, the
library introduces
\term{category tag}
\defn{category tag}
classes which are used as compile time tags for algorithm selection.
They are:
\tcode{output_iterator_tag},
Expand Down