immutability of the pointed-to type via const qualification. The
pointee of a proxy-based iterator will be const qualified unless a
mutable reference to the value_type can be bound to the returned
proxy.
Added a test for pointee
Fixed iterator_facade so operator[] result type computation didn't
cause a problem with abstract types.
Updated iterator_facade operator[] docs for accuracy.
Allowed Borland to simply fail the indirect_iterator_member_types test
because of its lame const-dropping, instead of trying to work around
it.
[SVN r21579]
is_incrementable.hpp: checks whether ++x is well-formed
pointee.hpp: value_type of iterators or smart pointers
indirect_reference.hpp: reference type of iterators or smart pointers
indirect_iterator.hpp
indirect_iterator_member_types.cpp
Use pointee/indirect_reference to select value/reference type.
iterator_concepts.hpp: Fixed interoperable test. Hardly tests enough, but it's a start
minimum_category.hpp: Better error messages for vc6
indirect_iterator_test.cpp: Workarounds for compilers without SFINAE
static_assert_same.hpp: Informative error reports; added a macro.
zip_iterator_test.hpp: Added missing #include
Jamfile: made zip_iterator test pass with vc6/stlport
[SVN r21514]
@ -474,11 +474,12 @@ the underlying iterator object of a <tt class="literal"><span class="pre">revers
</table>
<p>The user of <ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> creates a class derived from an
instantiation of <ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> and then selectively
redefines some of the core member functions described in the table
above. The <ttclass="literal"><spanclass="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 <ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> that have not been
redefined in the user's derived class.</p>
redefines some of the core member functions described in the
<ttclass="literal"><spanclass="pre">iterator_facade</span></tt>core requirements table. The <ttclass="literal"><spanclass="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
<ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> that have not been redefined in the user's
derived class.</p>
<p>Several of the template parameters of <ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> default
to <ttclass="literal"><spanclass="pre">use_default</span></tt>. This allows the
user to make use of a default parameter even when she wants to
@ -152,9 +152,10 @@ in <tt class="literal"><span class="pre">indirect_iterator</span></tt>.</li>
<li><aclass="reference"href="iterator_traits.html"><ttclass="literal"><spanclass="pre">iterator_traits.hpp</span></tt></a> (<aclass="reference"href="iterator_traits.pdf">PDF</a>): Provides <aclass="reference"href="../../mpl/doc/index.html">MPL</a>-compatible metafunctions which
retrieve an iterator's traits. Also corrects for the deficiencies
of broken implementations of <ttclass="literal"><spanclass="pre">std::iterator_traits</span></tt>.</li>
<li><aclass="reference"href="interoperable.html"><ttclass="literal"><spanclass="pre">interoperable.hpp</span></tt></a> (<aclass="reference"href="interoperable.pdf">PDF</a>): Provides an <aclass="reference"href="../../mpl/doc/index.html">MPL</a>-compatible metafunction for
testing iterator interoperability</li>
</ul>
<!-- * |interoperable|_ (PDF__): Provides an MPL_\ -compatible metafunction for
@ -92,11 +92,12 @@ the underlying iterator object of a <tt class="literal"><span class="pre">revers
</table>
<p>The user of <ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> creates a class derived from an
instantiation of <ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> and then selectively
redefines some of the core member functions described in the table
above. The <ttclass="literal"><spanclass="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 <ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> that have not been
redefined in the user's derived class.</p>
redefines some of the core member functions described in the
<ttclass="literal"><spanclass="pre">iterator_facade</span></tt>core requirements table. The <ttclass="literal"><spanclass="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
<ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> that have not been redefined in the user's
derived class.</p>
<p>Several of the template parameters of <ttclass="literal"><spanclass="pre">iterator_adaptor</span></tt> default
to <ttclass="literal"><spanclass="pre">use_default</span></tt>. This allows the
user to make use of a default parameter even when she wants to
<td><aclass="first reference"href="http://www.boost-consulting.com">Boost Consulting</a>, Indiana University <aclass="reference"href="http://www.osl.iu.edu">Open Systems
<td>Copyright David Abrahams, Jeremy Siek, and Thomas Witt 2004. All rights reserved</td></tr>
</tbody>
@ -35,7 +35,11 @@ Lab</a>, <a class="last reference" href="http://www.styleadvisor.com">Zephyr Ass
<colclass="field-name"/>
<colclass="field-body"/>
<tbodyvalign="top">
<trclass="field"><thclass="field-name">abstract:</th><tdclass="field-body">iteratorarchetypes provide a means to check the compile time requirements of a generic component on its iterator arguments.</td>
<trclass="field"><thclass="field-name">abstract:</th><tdclass="field-body">The <ttclass="literal"><spanclass="pre">iterator_archetype</span></tt> class constructs a minimal implementation of
one of the iterator access concepts and one of the iterator traversal concepts.
This is used for doing a compile-time check to see if a the type requirements
of a template are really enough to cover the implementation of the template.
For further information see the documentation for the <aclass="reference"href="../../concept_check/index.html"><ttclass="literal"><spanclass="pre">boost::concept_check</span></tt></a> library.</td>
<td><aclass="first reference"href="http://www.boost-consulting.com">Boost Consulting</a>, Indiana University <aclass="reference"href="http://www.osl.iu.edu">Open Systems
<trclass="field"><thclass="docinfo-name">Number:</th><tdclass="field-body">This is a revised version of <aclass="reference"href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1550.html">n1550</a>=03-0133, which was
accepted for Technical Report 1 by the C++ standard
committee's library working group. This proposal is a
@ -201,10 +201,9 @@ iterator concepts because the new concepts provide a more accurate way
to express their type requirements. The result is algorithms that are
usable in more situations and have fewer type requirements.</p>
<p>For the next working paper (but not for TR1), the committee should
consider the following changes to the type requirements of
algorithms. These changes are phrased as phrased as textual
substitutions, listing the algorithms to which each textual
substitution applies.</p>
consider the following changes to the type requirements of algorithms.
These changes are phrased as textual substitutions, listing the
algorithms to which each textual substitution applies.</p>
<p>Forward Iterator -> Forward Traversal Iterator and Readable Iterator</p>
Generated by <aclass="reference"href="http://docutils.sourceforge.net/">Docutils</a> from <aclass="reference"href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.