diff --git a/doc/.cvsignore b/doc/.cvsignore new file mode 100755 index 0000000..59a4657 --- /dev/null +++ b/doc/.cvsignore @@ -0,0 +1 @@ +GNUmakefile diff --git a/doc/counting_iterator.pdf b/doc/counting_iterator.pdf index 408d113..21b2d96 100755 Binary files a/doc/counting_iterator.pdf and b/doc/counting_iterator.pdf differ diff --git a/doc/facade-and-adaptor.html b/doc/facade-and-adaptor.html index 0af07bc..10049b7 100755 --- a/doc/facade-and-adaptor.html +++ b/doc/facade-and-adaptor.html @@ -26,7 +26,7 @@ Lab, Zephyr Associates, Inc. Date: 2004-11-01 -Number:This is a revised version of N1530=03-0113, which was +Number:This is a revised version of N1530=03-0113, which was accepted for Technical Report 1 by the C++ standard committee's library working group. @@ -128,9 +128,10 @@ by adapting other iterators.
  • Function output iterator
  • @@ -235,12 +236,12 @@ 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 +as proposed in n1550, since user-defined and especially adapted iterators suffer from the well known categorization problems that are inherent to the current iterator categories.

    -

    This proposal does not strictly depend on proposal n1550, as there +

    This proposal does not strictly depend on proposal n1550, as there is a direct mapping between new and old categories. This proposal -could be reformulated using this mapping if n1550 was not accepted.

    +could be reformulated using this mapping if n1550 was not accepted.

    Interoperability

    @@ -416,7 +417,7 @@ into the temporary iterator p+noperator[] returns.

    Writable iterators built with iterator_facade implement the semantics required by the preferred resolution to issue 299 and -adopted by proposal n1550: the result of p[n] is an object +adopted by proposal n1550: the result of p[n] is an object convertible to the iterator's value_type, and p[n] = x is equivalent to *(p + n) = x (Note: This result object may be implemented as a proxy containing a copy of p+n). This approach @@ -426,9 +427,9 @@ the implementation of her iterator is free to implement an operator[] that returns an lvalue in the derived iterator class; it will hide the one supplied by iterator_facade from clients of her iterator.

    -
    +
    -

    operator->

    +

    operator->

    The reference type of a readable iterator (and today's input iterator) need not in fact be a reference, so long as it is convertible to the iterator's value_type. When the value_type @@ -506,7 +507,7 @@ to the underlying values when dereferenced.

  • filter_iterator, which provides a view of an iterator range in which some elements of the underlying range are skipped.
  • -
    -

    iterator_adaptor base class parameters

    +

    iterator_adaptor base class parameters

    The V', C', R', and D' parameters of the iterator_facade used as a base class in the summary of iterator_adaptor above are defined as follows:

    @@ -2547,6 +2548,12 @@ particularly because the proper implementation usually requires a proxy object.

    Class template function_output_iterator

    +
    +
    -

    function_output_iterator requirements

    +

    function_output_iterator requirements

    UnaryFunction must be Assignable and Copy Constructible.

    -

    function_output_iterator models

    +

    function_output_iterator models

    function_output_iterator is a model of the Writable and Incrementable Iterator concepts.

    -

    function_output_iterator operations

    +

    function_output_iterator operations

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

    diff --git a/doc/facade-and-adaptor.pdf b/doc/facade-and-adaptor.pdf index 7bf3472..a77daa4 100755 Binary files a/doc/facade-and-adaptor.pdf and b/doc/facade-and-adaptor.pdf differ diff --git a/doc/filter_iterator.pdf b/doc/filter_iterator.pdf index 031ea64..1d8a804 100755 Binary files a/doc/filter_iterator.pdf and b/doc/filter_iterator.pdf differ diff --git a/doc/func_output_iter_ref.rst b/doc/func_output_iter_ref.rst index f46a91c..97e2e17 100644 --- a/doc/func_output_iter_ref.rst +++ b/doc/func_output_iter_ref.rst @@ -1,3 +1,10 @@ +Header +...... + +:: + + #include + :: template diff --git a/doc/function_output_iterator.html b/doc/function_output_iterator.html index 7c9486d..94a5840 100644 --- a/doc/function_output_iterator.html +++ b/doc/function_output_iterator.html @@ -49,12 +49,18 @@ proxy object. +
    -

    function_output_iterator requirements

    +

    function_output_iterator requirements

    UnaryFunction must be Assignable and Copy Constructible.

    -

    function_output_iterator models

    +

    function_output_iterator models

    function_output_iterator is a model of the Writable and Incrementable Iterator concepts.

    -

    function_output_iterator operations

    +

    function_output_iterator operations

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

    @@ -127,7 +134,7 @@ is equivalent to m_f(t)
    -

    Example

    +

    Example

     struct string_appender
     {
    diff --git a/doc/function_output_iterator.pdf b/doc/function_output_iterator.pdf
    index c6538ea..cef2274 100755
    Binary files a/doc/function_output_iterator.pdf and b/doc/function_output_iterator.pdf differ
    diff --git a/doc/indirect_iterator.pdf b/doc/indirect_iterator.pdf
    index ca69730..3cdcbd9 100755
    Binary files a/doc/indirect_iterator.pdf and b/doc/indirect_iterator.pdf differ
    diff --git a/doc/iterator_adaptor.pdf b/doc/iterator_adaptor.pdf
    index ade87c4..24582c1 100755
    Binary files a/doc/iterator_adaptor.pdf and b/doc/iterator_adaptor.pdf differ
    diff --git a/doc/iterator_adaptor_ref.html b/doc/iterator_adaptor_ref.html
    index b979f74..c3090db 100755
    --- a/doc/iterator_adaptor_ref.html
    +++ b/doc/iterator_adaptor_ref.html
    @@ -3,7 +3,7 @@
     
     
     
    -
    +
     
     
     
    @@ -27,7 +27,8 @@ class iterator_adaptor
         friend class iterator_core_access;
      public:
         iterator_adaptor();
    -    explicit iterator_adaptor(Base iter);
    +    explicit iterator_adaptor(Base const& iter);
    +    typedef Base base_type;
         Base const& base() const;
      protected:
         typedef iterator_adaptor iterator_adaptor_;
    @@ -55,15 +56,15 @@ class iterator_adaptor
         Base m_iterator; // exposition only
     };
     
    -
    -

    iterator_adaptor requirements

    -

    static_cast<Derived*>(iterator_adaptor*) shall be well-formed. -The Base argument shall be Assignable and Copy Constructible.

    -
    +
    +

    iterator_adaptor requirements

    +

    static_cast<Derived*>(iterator_adaptor*) shall be well-formed. +The Base argument shall be Assignable and Copy Constructible.

    +
    -

    iterator_adaptor base class parameters

    -

    The V', C', R', and D' parameters of the iterator_facade -used as a base class in the summary of iterator_adaptor +

    iterator_adaptor base class parameters

    +

    The V', C', R', and D' parameters of the iterator_facade +used as a base class in the summary of iterator_adaptor above are defined as follows:

     V' = if (Value is use_default)
    @@ -102,68 +103,68 @@ expression involving ``Derived`` in those concepts' requirements. -->
     
     
    -

    iterator_adaptor public operations

    -

    iterator_adaptor();

    -
    +

    iterator_adaptor public operations

    +

    iterator_adaptor();

    +
    - + - +
    Requires:The Base type must be Default Constructible.
    Requires:The Base type must be Default Constructible.
    Returns:An instance of iterator_adaptor with -m_iterator default constructed.
    Returns:An instance of iterator_adaptor with +m_iterator default constructed.
    -

    explicit iterator_adaptor(Base iter);

    - +

    explicit iterator_adaptor(Base const& iter);

    +
    - +
    Returns:An instance of iterator_adaptor with -m_iterator copy constructed from iter.
    Returns:An instance of iterator_adaptor with +m_iterator copy constructed from iter.
    -

    Base const& base() const;

    - +

    Base const& base() const;

    +
    - +
    Returns:m_iterator
    Returns:m_iterator
    -

    iterator_adaptor protected member functions

    -

    Base const& base_reference() const;

    - +

    iterator_adaptor protected member functions

    +

    Base const& base_reference() const;

    +
    - +
    Returns:A const reference to m_iterator.
    Returns:A const reference to m_iterator.
    -

    Base& base_reference();

    - +

    Base& base_reference();

    +
    - +
    Returns:A non-const reference to m_iterator.
    Returns:A non-const reference to m_iterator.
    -

    iterator_adaptor private member functions

    -

    typename iterator_adaptor::reference dereference() const;

    - +

    iterator_adaptor private member functions

    +

    typename iterator_adaptor::reference dereference() const;

    +
    - +
    Returns:*m_iterator
    Returns:*m_iterator
    @@ -173,38 +174,38 @@ class OtherDerived, class OtherIterator, class V, class C, class R, class D > bool equal(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& x) const; - +
    - +
    Returns:m_iterator == x.base()
    Returns:m_iterator == x.base()
    -

    void advance(typename iterator_adaptor::difference_type n);

    - +

    void advance(typename iterator_adaptor::difference_type n);

    +
    - +
    Effects:m_iterator += n;
    Effects:m_iterator += n;
    -

    void increment();

    - +

    void increment();

    +
    - +
    Effects:++m_iterator;
    Effects:++m_iterator;
    -

    void decrement();

    - +

    void decrement();

    +
    - +
    Effects:--m_iterator;
    Effects:--m_iterator;
    @@ -215,17 +216,17 @@ template < typename iterator_adaptor::difference_type distance_to( iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& y) const; - +
    - +
    Returns:y.base() - m_iterator
    Returns:y.base() - m_iterator
    - + +
    -

    operator->

    +

    operator->

    The reference type of a readable iterator (and today's input iterator) need not in fact be a reference, so long as it is convertible to the iterator's value_type. When the value_type @@ -355,12 +355,12 @@ template <class Dr, class V, class TC, class R, class D> Derived operator+ (typename Derived::difference_type n, iterator_facade<Dr,V,TC,R,D> const&); -

    The iterator_category member of iterator_facade is

    +

    The iterator_category member of iterator_facade is

     iterator-category(CategoryOrTraversal, value_type, reference)
     

    where iterator-category is defined as follows:

    -
    +
     iterator-category(C,R,V) :=
        if (C is convertible to std::input_iterator_tag
            || C is convertible to std::output_iterator_tag
    @@ -442,7 +442,7 @@ object of type X, X, and z
     is a constant object of a random access traversal iterator type
     interoperable with X.

    -
    +

    iterator_facade Core Operations

    @@ -534,7 +534,7 @@ of type pointer equal
    -

    unspecified operator[](difference_type n) const;

    +

    unspecified operator[](difference_type n) const;

    @@ -794,7 +794,7 @@ operator >=(iterator_facade<Dr1,V1,TC1,R1,D1> const& lhs,
    -
    +
     template <class Dr1, class V1, class TC1, class R1, class D1,
               class Dr2, class V2, class TC2, class R2, class D2>
     typename enable_if_interoperable<Dr1,Dr2,difference>::type
    @@ -1110,7 +1110,7 @@ changes:

     class const_node_iterator
       : public boost::iterator_facade<
    -        node_iterator
    +        const_node_iterator
           , node_base const
           , boost::forward_traversal_tag
         >
    @@ -1269,8 +1269,8 @@ If we try to convert from node_co
     constructor tries to initialize node_iterator's m_node, a
     node* with a node const*.  So what's the problem?

    The problem is that -boost::is_convertible<node_const_iterator,node_iterator>::value -will be true, but it should be false. is_convertible +boost::is_convertible<node_const_iterator,node_iterator>::value +will be true, but it should be false. is_convertible lies because it can only see as far as the declaration of node_iter's converting constructor, but can't look inside at the definition to make sure it will compile. A perfect solution diff --git a/doc/iterator_facade.pdf b/doc/iterator_facade.pdf index bfa17bf..30d46d2 100755 Binary files a/doc/iterator_facade.pdf and b/doc/iterator_facade.pdf differ diff --git a/doc/new-iter-concepts.pdf b/doc/new-iter-concepts.pdf index 2118e6c..636aaab 100755 Binary files a/doc/new-iter-concepts.pdf and b/doc/new-iter-concepts.pdf differ diff --git a/doc/permutation_iterator.pdf b/doc/permutation_iterator.pdf index 37fef06..3f69d1d 100755 Binary files a/doc/permutation_iterator.pdf and b/doc/permutation_iterator.pdf differ diff --git a/doc/pointee.pdf b/doc/pointee.pdf index 98efe93..53f9f6d 100755 Binary files a/doc/pointee.pdf and b/doc/pointee.pdf differ diff --git a/doc/reverse_iterator.pdf b/doc/reverse_iterator.pdf index 761c451..8cfd925 100755 Binary files a/doc/reverse_iterator.pdf and b/doc/reverse_iterator.pdf differ diff --git a/doc/rst2html b/doc/rst2html index b332e1c..9251164 100755 --- a/doc/rst2html +++ b/doc/rst2html @@ -1,7 +1,7 @@ #!/bin/sh -PYTHONPATH="c:/src/docutils/docutils;c:/src/docutils/docutils/extras" +PYTHONPATH="c:/src/docutils;c:/src/docutils/extras" export PYTHONPATH -python c:/src/docutils/docutils/tools/rst2html.py -gs $1 `echo $1 | sed 's/\(.*\)\..*/\1.html/'` +python c:/src/docutils/tools/rst2html.py -gs $1 `echo $1 | sed 's/\(.*\)\..*/\1.html/'` diff --git a/doc/rst2latex b/doc/rst2latex index 3636587..129a15f 100755 --- a/doc/rst2latex +++ b/doc/rst2latex @@ -1,4 +1,4 @@ #!/bin/sh -PYTHONPATH="c:/src/docutils/docutils;c:/src/docutils/docutils/extras" +PYTHONPATH="c:/src/docutils;c:/src/docutils/extras" export PYTHONPATH -python c:/src/docutils/docutils/tools/rst2latex.py --documentoptions pdftex --stylesheet=docutils.sty $1 `echo $1 | sed 's/\(.*\)\..*/\1.tex/'` +python c:/src/docutils/tools/rst2latex.py --documentoptions pdftex --stylesheet=docutils.sty $1 `echo $1 | sed 's/\(.*\)\..*/\1.tex/'` diff --git a/doc/transform_iterator.pdf b/doc/transform_iterator.pdf index 5517e99..2af10ab 100755 Binary files a/doc/transform_iterator.pdf and b/doc/transform_iterator.pdf differ diff --git a/doc/zip_iterator.pdf b/doc/zip_iterator.pdf index 81374a6..c5a6f21 100755 Binary files a/doc/zip_iterator.pdf and b/doc/zip_iterator.pdf differ