diff --git a/doc/GNUmakefile b/doc/GNUmakefile index 833a23a..0774517 100755 --- a/doc/GNUmakefile +++ b/doc/GNUmakefile @@ -57,7 +57,7 @@ texcrap = *.mpx *.log *.aux *.blg *-print.brf *-print.tex *.out mpxcrap = mpxerr.tex mpxerr.pdf generated = *.out *.[0-9] *.[0-9][0-9] *.bbl *.brf \ - *.mp *.mmp *.pdf .depend *.ps TMP-*.pdf *.ftoc\ + *.mp *.mmp *.pdf *.ps TMP-*.pdf *.ftoc\ ${PRINTZIP} ${SLIDEZIP} ${GENFILE} ${DEPENDFILES} \ ${texcrap} ${mpxcrap} ${CUTFOILS} $(strip $(wildcard *---*.tex)) @@ -211,7 +211,7 @@ clean: ${RMRF} ${generated} # ... Target: create dependencies -depend: .depend .depend-rst +depend: .depend-rst # ... Target: dependency file (parse TEXFILES for multiinclude and includegraphics) .depend: GNUmakefile ${TEXFILES} @@ -226,11 +226,11 @@ depend: .depend .depend-rst ${RMRF} $@ @for t in ${RSTSTEMS} ; do \ ${ECHO} "Scanning $$t.rst"; \ - ${PERL} -e 'my $$target = shift @ARGV;' -e 'while (<>) { /^\.\. include::\s+(.*)/ && print "$$target: $$1\n";}' $$t.html < $$t.rst >> $@; \ - ${PERL} -e 'my $$target = shift @ARGV;' -e 'while (<>) { /^\.\. include::\s+(.*)/ && print "$$target: $$1\n";}' $$t.tex < $$t.rst >> $@; \ + ${PERL} -e 'my $$target = shift @ARGV;' -e 'while (<>) { /^\.\. (include|image)::\s+(.*)/ && print "$$target: $$2\n";}' $$t.html < $$t.rst >> $@; \ + ${PERL} -e 'my $$target = shift @ARGV;' -e 'while (<>) { /^\.\. (include|image)::\s+(.*)/ && print "$$target: $$2\n";}' $$t.tex < $$t.rst >> $@; \ done # ... include dependency files --include .depend +# -include .depend -include .depend-rst diff --git a/doc/facade-and-adaptor.html b/doc/facade-and-adaptor.html index a787b52..5728b08 100755 --- a/doc/facade-and-adaptor.html +++ b/doc/facade-and-adaptor.html @@ -7,7 +7,7 @@ Iterator Facade and Adaptor - + @@ -26,7 +26,7 @@ Lab, University of Hanover Institute for Transport Railway Operation and Construction Date: -2004-01-12 +2004-01-13 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. @@ -802,8 +802,7 @@ Iterator

iterator_facade iterator category

The iterator_category member of iterator_facade<X,V,R,C,D> -is a type which satisfies the following conditions:

-
+satisfies the following conditions:

-
+ + +

iterator_facade operations

@@ -1410,37 +1411,72 @@ if (Difference is use_default) else typedef Difference difference_type; -

If CategoryOrTraversal is not use_default then -iterator_category is CategoryOrTraversal. Otherwise -iterator_category is a type convertible to the tag determined by -the following algorithm. Let C be traversal_category<Iterator>::type.

+

iterator_category satisfies the following conditions, where +R is reference and V is value_type, and where: if +CategoryOrTraversal is use_default, C is +iterator_traversal<Iterator>::type and otherwise C is +CategoryOrTraversal:

+
+ + + + +

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 -is an iterator tag, the template parameter Iterator argument shall -meet the requirements corresponding to the iterator tag.

+

CategoryOrTraversal argument shall be use_default or it +shall be convertible to one of the standard iterator or traversal +tags. If CategoryOrTraversal is not use_default, it shall +indicate the traversal category modeled by Iterator. If

The expression *v, where v is an object of type -iterator_traits<Iterator>::value_type, must be a valid expression -and must be convertible to indirect_iterator::reference. Also +iterator_traits<Iterator>::value_type, shall be valid +expression and convertible to reference. Also indirect_iterator::reference must be convertible to -indirect_iterator::value. There are further requirements on the -iterator_traits<Iterator>::value_type if the Value parameter -is not use_default, as implied by the algorithm for deducing the -default for the value_type member.

+indirect_iterator::value. There are further requirements on +the iterator_traits<Iterator>::value_type if the Value +parameter is not use_default, as implied by the algorithm for +deducing the default for the value_type member.

indirect_iterator models

@@ -2436,7 +2472,6 @@ LocalWords: OtherIncrementable Coplien --> diff --git a/doc/facade_iterator_category.rst b/doc/facade_iterator_category.rst new file mode 100755 index 0000000..39e9514 --- /dev/null +++ b/doc/facade_iterator_category.rst @@ -0,0 +1,39 @@ +* if ``C`` is convertible to ``std::input_iterator_tag`` or + ``C`` is convertible to ``std::output_iterator_tag``, + ``iterator_category`` is the same as ``C``. + +* Otherwise, if ``C`` is not convertible to + ``incrementable_traversal_tag``, the program is ill-formed + +* Otherwise: + + - ``iterator_category`` is convertible to the iterator + category tag or tags given by the following algorithm, and + not to any more-derived iterator category tag or tags:: + + if (R is a reference type + && C is convertible to forward_traversal_tag) + { + if (C is convertible to random_access_traversal_tag) + random_access_iterator_tag + else if (C is convertible to bidirectional_traversal_tag) + bidirectional_iterator_tag + else + forward_iterator_tag + } + else + { + if (C is convertible to single_pass_traversal_tag + && R is convertible to V) + input_iterator_tag + else + C + } + + - ``iterator_traversal::type`` is convertible to the most + derived traversal tag type to which ``C`` is also + convertible, and not to any more-derived traversal tag type. + +.. Copyright David Abrahams 2004. Use, modification and distribution is +.. subject to the Boost Software License, Version 1.0. (See accompanying +.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/doc/index.html b/doc/index.html index 0d4537d..c487582 100755 --- a/doc/index.html +++ b/doc/index.html @@ -140,6 +140,9 @@ underlying sequence. This component also replaces the old

Traits

    +
  • pointee.hpp: Provides the capability to deduce the referent types +of pointers, smart pointers and iterators in generic code. Used +in indirect_iterator.
  • iterator_traits.hpp: Provides MPL-compatible metafunctions which retrieve an iterator's traits. Also corrects for the deficiencies of broken implementations of std::iterator_traits.
  • @@ -226,7 +229,7 @@ LocalWords: TraversalTag typename lvalues DWA Hmm JGS --> diff --git a/doc/index.rst b/doc/index.rst index 9b965c0..0602f7f 100755 --- a/doc/index.rst +++ b/doc/index.rst @@ -169,6 +169,10 @@ iterator templates based on the Boost `iterator facade and adaptor`_. Traits ------ +* |pointee|_: Provides the capability to deduce the referent types + of pointers, smart pointers and iterators in generic code. Used + in |indirect|. + * |iterator_traits|_: Provides MPL_\ -compatible metafunctions which retrieve an iterator's traits. Also corrects for the deficiencies of broken implementations of ``std::iterator_traits``. @@ -176,6 +180,9 @@ Traits * |interoperable|_: Provides an MPL_\ -compatible metafunction for testing iterator interoperability +.. |pointee| replace:: ``pointee.hpp`` +.. _pointee: pointee.html + .. |iterator_traits| replace:: ``iterator_traits.hpp`` .. _iterator_traits: iterator_traits.html diff --git a/doc/indirect_iterator.html b/doc/indirect_iterator.html index 21b7b0b..ab8bf92 100644 --- a/doc/indirect_iterator.html +++ b/doc/indirect_iterator.html @@ -125,37 +125,72 @@ if (Difference is use_default) else typedef Difference difference_type; -

    If CategoryOrTraversal is not use_default then -iterator_category is CategoryOrTraversal. Otherwise -iterator_category is a type convertible to the tag determined by -the following algorithm. Let C be traversal_category<Iterator>::type.

    +

    iterator_category satisfies the following conditions, where +R is reference and V is value_type, and where: if +CategoryOrTraversal is use_default, C is +iterator_traversal<Iterator>::type and otherwise C is +CategoryOrTraversal:

    +
    +
      +
    • if C is convertible to std::input_iterator_tag or +C is convertible to std::output_iterator_tag, +iterator_category is the same as C.

      +
    • +
    • Otherwise, if C is not convertible to +incrementable_traversal_tag, the program is ill-formed

      +
    • +
    • Otherwise:

      +
        +
      • iterator_category is convertible to the iterator +category tag or tags given by the following algorithm, and +not to any more-derived iterator category tag or tags:

        -if (reference is a reference to value_type) then
        -    if (C is convertible to random_access_traversal_tag) then
        +if (R is a reference type
        +    && C is convertible to forward_traversal_tag)
        +{
        +    if (C is convertible to random_access_traversal_tag)
                 random_access_iterator_tag
        -    else if (C is convertible to bidirectional_traversal_tag) then
        +    else if (C is convertible to bidirectional_traversal_tag)
                 bidirectional_iterator_tag
             else
                 forward_iterator_tag
        +}
         else
        -    input_iterator_tag
        +{
        +    if (C is convertible to single_pass_traversal_tag
        +        && R is convertible to V)
        +        input_iterator_tag
        +    else
        +        C
        +}
         
        +
      • +
      • iterator_traversal<X>::type is convertible to the most +derived traversal tag type to which C is also +convertible, and not to any more-derived traversal tag type.

        +
      • +
      +
    • +
    + + + +

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 -is an iterator tag, the template parameter Iterator argument shall -meet the requirements corresponding to the iterator tag.

+

CategoryOrTraversal argument shall be use_default or it +shall be convertible to one of the standard iterator or traversal +tags. If CategoryOrTraversal is not use_default, it shall +indicate the traversal category modeled by Iterator. If

The expression *v, where v is an object of type -iterator_traits<Iterator>::value_type, must be a valid expression -and must be convertible to indirect_iterator::reference. Also +iterator_traits<Iterator>::value_type, shall be valid +expression and convertible to reference. Also indirect_iterator::reference must be convertible to -indirect_iterator::value. There are further requirements on the -iterator_traits<Iterator>::value_type if the Value parameter -is not use_default, as implied by the algorithm for deducing the -default for the value_type member.

+indirect_iterator::value. There are further requirements on +the iterator_traits<Iterator>::value_type if the Value +parameter is not use_default, as implied by the algorithm for +deducing the default for the value_type member.

indirect_iterator models

@@ -327,7 +362,6 @@ a,b,c,d,e,f,g, diff --git a/doc/indirect_iterator_ref.rst b/doc/indirect_iterator_ref.rst index fc99632..700815b 100644 --- a/doc/indirect_iterator_ref.rst +++ b/doc/indirect_iterator_ref.rst @@ -66,52 +66,34 @@ following pseudo-code. We use the abbreviation else typedef Difference difference_type; +``iterator_category`` satisfies the following conditions, where +``R`` is ``reference`` and ``V`` is ``value_type``, and where: if +``CategoryOrTraversal`` is ``use_default``, ``C`` is +``iterator_traversal::type`` and otherwise ``C`` is +``CategoryOrTraversal``: -If ``CategoryOrTraversal`` is not ``use_default`` then -``iterator_category`` is ``CategoryOrTraversal``. Otherwise -``iterator_category`` is a type convertible to the tag determined by -the following algorithm. Let ``C`` be ``traversal_category::type``. - -:: - - if (reference is a reference to value_type) then - if (C is convertible to random_access_traversal_tag) then - random_access_iterator_tag - else if (C is convertible to bidirectional_traversal_tag) then - bidirectional_iterator_tag - else - forward_iterator_tag - else - input_iterator_tag - + .. include:: facade_iterator_category.rst ``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`` -is an iterator tag, the template parameter ``Iterator`` argument shall -meet the requirements corresponding to the iterator tag. - The expression ``*v``, where ``v`` is an object of type -``iterator_traits::value_type``, must be a valid expression -and must be convertible to ``indirect_iterator::reference``. Also -``indirect_iterator::reference`` must be convertible to -``indirect_iterator::value``. There are further requirements on the -``iterator_traits::value_type`` if the ``Value`` parameter -is not ``use_default``, as implied by the algorithm for deducing the -default for the ``value_type`` member. +``iterator_traits::value_type``, shall be valid +expression and convertible to ``reference``. [Note: there are +further requirements on the +``iterator_traits::value_type`` if the ``Value`` +parameter is not ``use_default``, as implied by the algorithm for +deducing the default for the ``value_type`` member.] ``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 -of the most refined standard traversal concept that is satisfied by -the ``Iterator`` argument. +``indirect_iterator`` is a model of the iterator concept +corresponding to the tag. Otherwise, ``indirect_iterator`` +satisfies the requirements of the most refined standard traversal +concept that is satisfied by the ``Iterator`` argument. ``indirect_iterator`` models Readable Iterator. If ``indirect_iterator::reference(*v) = t`` is a valid expression (where diff --git a/doc/indirect_reference_ref.rst b/doc/indirect_reference_ref.rst new file mode 100755 index 0000000..280ce44 --- /dev/null +++ b/doc/indirect_reference_ref.rst @@ -0,0 +1,29 @@ +.. Copyright David Abrahams 2004. Use, modification and distribution is +.. subject to the Boost Software License, Version 1.0. (See accompanying +.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +:: + + template + struct indirect_reference + { + typedef /* see below */ type; + }; + +:Requires: For an object ``x`` of type ``Dereferenceable``, ``*x`` + is well-formed. If ``++x`` is ill-formed it shall neither be + ambiguous nor shall it violate access control, and + ``pointee::type&`` shall be well-formed. + Otherwise ``iterator_traits::reference`` shall + be well formed. [Note: These requirements need not apply to + explicit or partial specializations of ``indirect_reference``] + +``type`` is determined according to the following algorithm, where +``x`` is an object of type ``Dereferenceable``:: + + if ( ++x is ill-formed ) + return ``pointee::type&`` + else + std::iterator_traits::value_type + + \ No newline at end of file diff --git a/doc/iterator_facade.html b/doc/iterator_facade.html index 752761c..1ad7003 100644 --- a/doc/iterator_facade.html +++ b/doc/iterator_facade.html @@ -466,8 +466,7 @@ Iterator

iterator_facade iterator category

The iterator_category member of iterator_facade<X,V,R,C,D> -is a type which satisfies the following conditions:

-
+satisfies the following conditions:

  • if C is convertible to std::input_iterator_tag or C is convertible to std::output_iterator_tag, @@ -509,7 +508,9 @@ convertible, and not to any more-derived traversal tag type.

-
+ + +

iterator_facade operations

@@ -1132,7 +1133,6 @@ even be superior.

diff --git a/doc/iterator_facade_ref.rst b/doc/iterator_facade_ref.rst index b28b234..7decae0 100644 --- a/doc/iterator_facade_ref.rst +++ b/doc/iterator_facade_ref.rst @@ -173,44 +173,9 @@ interoperable with ``X``. ------------------------------------- The ``iterator_category`` member of ``iterator_facade`` -is a type which satisfies the following conditions: - - * if ``C`` is convertible to ``std::input_iterator_tag`` or - ``C`` is convertible to ``std::output_iterator_tag``, - ``iterator_category`` is the same as ``C``. - - * Otherwise, if ``C`` is not convertible to - ``incrementable_traversal_tag``, the program is ill-formed - - * Otherwise: - - - ``iterator_category`` is convertible to the iterator - category tag or tags given by the following algorithm, and - not to any more-derived iterator category tag or tags:: - - if (R is a reference type - && C is convertible to forward_traversal_tag) - { - if (C is convertible to random_access_traversal_tag) - random_access_iterator_tag - else if (C is convertible to bidirectional_traversal_tag) - bidirectional_iterator_tag - else - forward_iterator_tag - } - else - { - if (C is convertible to single_pass_traversal_tag - && R is convertible to V) - input_iterator_tag - else - C - } - - - ``iterator_traversal::type`` is convertible to the most - derived traversal tag type to which ``C`` is also - convertible, and not to any more-derived traversal tag type. +satisfies the following conditions: +.. include:: facade_iterator_category.rst ``iterator_facade`` operations ------------------------------ diff --git a/doc/pointee.html b/doc/pointee.html new file mode 100755 index 0000000..614dbf3 --- /dev/null +++ b/doc/pointee.html @@ -0,0 +1,180 @@ + + + + + + +pointee and indirect_reference + + + + + + + +
+

pointee and indirect_reference

+ +++ + + + + + + + + + + + +
Author:David Abrahams
Contact:dave@boost-consulting.com, jsiek@osl.iu.edu, witt@ive.uni-hannover.de
Organization:Boost Consulting
Date:2004-01-13
Copyright:Copyright David Abrahams 2004. All rights reserved
+ +++ + + + +
abstract:Provides the capability to deduce the referent types of +pointers, smart pointers and iterators in generic code.
+
+

Overview

+

Have you ever wanted to write a generic function that can operate +on any kind of dereferenceable object? If you have, you've +probably run into the problem of how to determine the type that the +object "points at":

+
+template <class Dereferenceable>
+void f(Dereferenceable p)
+{
+    what-goes-here? value = *p;
+    ...
+}
+
+
+

pointee

+

It turns out to be impossible to come up with a fully-general +algorithm to do determine what-goes-here directly, but it is +possible to require that pointee<Dereferenceable>::type is +correct. Naturally, pointee has the same difficulty: it can't +determine the appropriate ::type reliably for all +Dereferenceables, but it makes very good guesses (it works +for all pointers, standard and boost smart pointers, and +iterators), and when it guesses wrongly, it can be specialized as +neccessary:

+
+namespace boost
+{
+  template <class T>
+  struct pointee<third_party_lib::smart_pointer<T> >
+  {
+      typedef T type;
+  };
+}
+
+
+
+

indirect_reference

+

indirect_reference<T>::type is rather more specialized than +pointee, and is meant to be used to forward the result of +dereferencing an object of its argument type. Most dereferenceable +types just return a reference to their pointee, but some return +proxy references or return the pointee by value. When that +information is needed, call on indirect_reference.

+

Both of these templates are essential to the correct functioning of +indirect_iterator.

+
+
+
+

Reference

+
+

pointee

+ + + +
+template <class Dereferenceable>
+struct pointee
+{
+    typedef /* see below */ type;
+};
+
+ +++ + + + +
Requires:For an object x of type Dereferenceable, *x +is well-formed. If ++x is ill-formed it shall neither be +ambiguous nor shall it violate access control, and +Dereferenceable::element_type shall be an accessible type. +Otherwise iterator_traits<Dereferenceable>::value_type shall +be well formed. [Note: These requirements need not apply to +explicit or partial specializations of pointee]
+

type is determined according to the following algorithm, where +x is an object of type Dereferenceable:

+
+if ( ++x is ill-formed )
+{
+    return ``Dereferenceable::element_type``
+}
+else if (``*x`` is a mutable reference to
+         std::iterator_traits<Dereferenceable>::value_type)
+{
+    return iterator_traits<Dereferenceable>::value_type
+}
+else
+{
+    return iterator_traits<Dereferenceable>::value_type const
+}
+
+
+
+

indirect_reference

+ + + +
+template <class Dereferenceable>
+struct indirect_reference
+{
+    typedef /* see below */ type;
+};
+
+ +++ + + + +
Requires:For an object x of type Dereferenceable, *x +is well-formed. If ++x is ill-formed it shall neither be +ambiguous nor shall it violate access control, and +pointee<Dereferenceable>::type& shall be well-formed. +Otherwise iterator_traits<Dereferenceable>::reference shall +be well formed. [Note: These requirements need not apply to +explicit or partial specializations of indirect_reference]
+

type is determined according to the following algorithm, where +x is an object of type Dereferenceable:

+
+if ( ++x is ill-formed )
+    return ``pointee<Dereferenceable>::type&``
+else
+    std::iterator_traits<Dereferenceable>::value_type
+
+
+
+
+ + + + diff --git a/doc/pointee.rst b/doc/pointee.rst new file mode 100755 index 0000000..21b90a4 --- /dev/null +++ b/doc/pointee.rst @@ -0,0 +1,84 @@ +++++++++++++++++++++++++++++++++++++++++ + ``pointee`` and ``indirect_reference`` +++++++++++++++++++++++++++++++++++++++++ + +:Author: David Abrahams +:Contact: dave@boost-consulting.com, jsiek@osl.iu.edu, witt@ive.uni-hannover.de +:organization: `Boost Consulting`_ +:date: $Date$ +:copyright: Copyright David Abrahams 2004. All rights reserved + +.. _`Boost Consulting`: http://www.boost-consulting.com + +:abstract: Provides the capability to deduce the referent types of + pointers, smart pointers and iterators in generic code. + +Overview +======== + +Have you ever wanted to write a generic function that can operate +on any kind of dereferenceable object? If you have, you've +probably run into the problem of how to determine the type that the +object "points at": + +.. parsed-literal:: + + template + void f(Dereferenceable p) + { + *what-goes-here?* value = \*p; + ... + } + + +``pointee`` +----------- + +It turns out to be impossible to come up with a fully-general +algorithm to do determine *what-goes-here* directly, but it is +possible to require that ``pointee::type`` is +correct. Naturally, ``pointee`` has the same difficulty: it can't +determine the appropriate ``::type`` reliably for all +``Dereferenceable``\ s, but it makes very good guesses (it works +for all pointers, standard and boost smart pointers, and +iterators), and when it guesses wrongly, it can be specialized as +neccessary:: + + namespace boost + { + template + struct pointee > + { + typedef T type; + }; + } + +``indirect_reference`` +---------------------- + +``indirect_reference::type`` is rather more specialized than +``pointee``, and is meant to be used to forward the result of +dereferencing an object of its argument type. Most dereferenceable +types just return a reference to their pointee, but some return +proxy references or return the pointee by value. When that +information is needed, call on ``indirect_reference``. + +Both of these templates are essential to the correct functioning of +|indirect_iterator|_. + +.. |indirect_iterator| replace:: ``indirect_iterator`` +.. _indirect_iterator: indirect_iterator.html + +Reference +========= + +``pointee`` +----------- + +.. include:: pointee_ref.rst + +``indirect_reference`` +---------------------- + +.. include:: indirect_reference_ref.rst + diff --git a/doc/pointee_ref.rst b/doc/pointee_ref.rst new file mode 100755 index 0000000..19aed24 --- /dev/null +++ b/doc/pointee_ref.rst @@ -0,0 +1,38 @@ +.. Copyright David Abrahams 2004. Use, modification and distribution is +.. subject to the Boost Software License, Version 1.0. (See accompanying +.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +:: + + template + struct pointee + { + typedef /* see below */ type; + }; + +:Requires: For an object ``x`` of type ``Dereferenceable``, ``*x`` + is well-formed. If ``++x`` is ill-formed it shall neither be + ambiguous nor shall it violate access control, and + ``Dereferenceable::element_type`` shall be an accessible type. + Otherwise ``iterator_traits::value_type`` shall + be well formed. [Note: These requirements need not apply to + explicit or partial specializations of ``pointee``] + +``type`` is determined according to the following algorithm, where +``x`` is an object of type ``Dereferenceable``:: + + if ( ++x is ill-formed ) + { + return ``Dereferenceable::element_type`` + } + else if (``*x`` is a mutable reference to + std::iterator_traits::value_type) + { + return iterator_traits::value_type + } + else + { + return iterator_traits::value_type const + } + + \ No newline at end of file diff --git a/doc/rst2html b/doc/rst2html index 845c11f..bd8dc8f 100755 --- a/doc/rst2html +++ b/doc/rst2html @@ -1,7 +1,7 @@ #!/bin/sh PYTHONPATH="c:/src/docutils/docutils;c:/src/docutils/docutils/extras" export PYTHONPATH -python c:/src/docutils/docutils/tools/html.py -gdts $1 `echo $1 | sed 's/\(.*\)\..*/\1.html/'` +python c:/src/docutils/docutils/tools/html.py -gs $1 `echo $1 | sed 's/\(.*\)\..*/\1.html/'` diff --git a/doc/sources.py b/doc/sources.py index a69b4a7..c85e307 100644 --- a/doc/sources.py +++ b/doc/sources.py @@ -9,6 +9,7 @@ sources = [ 'function_output_iterator.rst', 'index.rst', 'indirect_iterator.rst', +'pointee.rst', 'iterator_adaptor.rst', 'iterator_facade.rst', 'new-iter-concepts.rst',