Whitespace cleanup and formatting fixes in docs.

This commit is contained in:
Andrey Semashev
2019-12-12 12:35:38 +03:00
parent 897ff65fdc
commit 3a8728a595
17 changed files with 219 additions and 230 deletions

View File

@ -1,4 +1,3 @@
[section:adaptor Iterator Adaptor] [section:adaptor Iterator Adaptor]
The `iterator_adaptor` class template adapts some `Base` [#base]_ The `iterator_adaptor` class template adapts some `Base` [#base]_
@ -64,7 +63,7 @@ that assumption.
typename iterator_adaptor::reference dereference() const; typename iterator_adaptor::reference dereference() const;
template < template <
class OtherDerived, class OtherIterator, class V, class C, class R, class D 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; bool equal(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& x) const;

View File

@ -1,4 +1,3 @@
[section:archetypes Iterator Archetypes] [section:archetypes Iterator Archetypes]
The `iterator_archetype` class constructs a minimal implementation of The `iterator_archetype` class constructs a minimal implementation of
@ -156,5 +155,4 @@ the iterator concept specified by `AccessCategory` and
arguments. `iterator_archetype` does not model any other access arguments. `iterator_archetype` does not model any other access
concepts or any more derived traversal concepts. concepts or any more derived traversal concepts.
[endsect] [endsect]

View File

@ -1,4 +1,3 @@
[section:concepts Iterator Concepts] [section:concepts Iterator Concepts]
[section:access Access] [section:access Access]
@ -326,13 +325,13 @@ constant object of type `Distance`.
[pre: there exists a value `n` of `Distance` such that `a + n == b`. `b == a + (b - a)`.] [pre: there exists a value `n` of `Distance` such that `a + n == b`. `b == a + (b - a)`.]
] ]
[ [
[`a\[n\]`] [`a[n]`]
[convertible to T] [convertible to T]
[`*(a + n)`] [`*(a + n)`]
[pre: a is a *Readable Iterator*] [pre: a is a *Readable Iterator*]
] ]
[ [
[`a\[n\] = v`] [`a[n] = v`]
[convertible to T] [convertible to T]
[`*(a + n) = v`] [`*(a + n) = v`]
[pre: a is a *Writable iterator*] [pre: a is a *Writable iterator*]

View File

@ -1,4 +1,3 @@
[section:counting Counting Iterator] [section:counting Counting Iterator]
A `counting_iterator` adapts an object by adding an `operator*` that A `counting_iterator` adapts an object by adding an `operator*` that
@ -18,26 +17,28 @@ into the first array via indirection through the second array.
std::vector<int> numbers; std::vector<int> numbers;
typedef std::vector<int>::iterator n_iter; typedef std::vector<int>::iterator n_iter;
std::copy(boost::counting_iterator<int>(0), std::copy(boost::counting_iterator<int>(0),
boost::counting_iterator<int>(N), boost::counting_iterator<int>(N),
std::back_inserter(numbers)); std::back_inserter(numbers));
std::vector<std::vector<int>::iterator> pointers; std::vector<std::vector<int>::iterator> pointers;
std::copy(boost::make_counting_iterator(numbers.begin()), std::copy(boost::make_counting_iterator(numbers.begin()),
boost::make_counting_iterator(numbers.end()), boost::make_counting_iterator(numbers.end()),
std::back_inserter(pointers)); std::back_inserter(pointers));
std::cout << "indirectly printing out the numbers from 0 to " std::cout << "indirectly printing out the numbers from 0 to "
<< N << std::endl; << N << std::endl;
std::copy(boost::make_indirect_iterator(pointers.begin()), std::copy(boost::make_indirect_iterator(pointers.begin()),
boost::make_indirect_iterator(pointers.end()), boost::make_indirect_iterator(pointers.end()),
std::ostream_iterator<int>(std::cout, " ")); std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl; std::cout << std::endl;
The output is: The output is:
indirectly printing out the numbers from 0 to 7 [pre
0 1 2 3 4 5 6 indirectly printing out the numbers from 0 to 7
0 1 2 3 4 5 6
]
The source code for this example can be found [example_link counting_iterator_example.cpp..here]. The source code for this example can be found [example_link counting_iterator_example.cpp..here].

View File

@ -1,4 +1,3 @@
[section:facade Iterator Facade] [section:facade Iterator Facade]
While the iterator interface is rich, there is a core subset of the While the iterator interface is rich, there is a core subset of the

View File

@ -1,4 +1,3 @@
[section:facade_tutorial Tutorial] [section:facade_tutorial Tutorial]
In this section we'll walk through the implementation of a few In this section we'll walk through the implementation of a few

View File

@ -1,4 +1,3 @@
[section:filter Filter Iterator] [section:filter Filter Iterator]
The filter iterator adaptor creates a view of an iterator range in The filter iterator adaptor creates a view of an iterator range in
@ -19,7 +18,6 @@ This example uses `filter_iterator` and then
array of integers. Then `make_filter_iterator` is is used to output array of integers. Then `make_filter_iterator` is is used to output
the integers greater than `-2`. the integers greater than `-2`.
struct is_positive_number { struct is_positive_number {
bool operator()(int x) { return 0 < x; } bool operator()(int x) { return 0 < x; }
}; };
@ -70,10 +68,11 @@ the integers greater than `-2`.
The output is: The output is:
4 5 8 [pre
4 5 8 4 5 8
0 -1 4 5 8 4 5 8
0 -1 4 5 8
]
The source code for this example can be found [example_link filter_iterator_example.cpp..here]. The source code for this example can be found [example_link filter_iterator_example.cpp..here].
@ -238,5 +237,4 @@ operations.
or `m_pred(*m_iter) == true`.[br] or `m_pred(*m_iter) == true`.[br]
[*Returns: ] `*this` [*Returns: ] `*this`
[endsect] [endsect]

View File

@ -1,4 +1,3 @@
[section:function_output Function Output Iterator] [section:function_output Function Output Iterator]
The function output iterator adaptor makes it easier to create custom The function output iterator adaptor makes it easier to create custom

View File

@ -49,27 +49,28 @@ using the `make_indirect_iterator` helper function.
const_indirect_last(pointers_to_chars + N); const_indirect_last(pointers_to_chars + N);
std::transform(const_indirect_first, const_indirect_last, std::transform(const_indirect_first, const_indirect_last,
mutable_indirect_first, std::bind1st(std::plus<char>(), 1)); mutable_indirect_first, std::bind1st(std::plus<char>(), 1));
std::copy(mutable_indirect_first, mutable_indirect_last, std::copy(mutable_indirect_first, mutable_indirect_last,
std::ostream_iterator<char>(std::cout, ",")); std::ostream_iterator<char>(std::cout, ","));
std::cout << std::endl; std::cout << std::endl;
// Example of using make_indirect_iterator() // Example of using make_indirect_iterator()
std::copy(boost::make_indirect_iterator(pointers_to_chars), std::copy(boost::make_indirect_iterator(pointers_to_chars),
boost::make_indirect_iterator(pointers_to_chars + N), boost::make_indirect_iterator(pointers_to_chars + N),
std::ostream_iterator<char>(std::cout, ",")); std::ostream_iterator<char>(std::cout, ","));
std::cout << std::endl; std::cout << std::endl;
The output is: The output is:
a,b,c,d,e,f,g, [pre
b,c,d,e,f,g,h, a,b,c,d,e,f,g,
a,b,c,d,e,f,g, b,c,d,e,f,g,h,
a,b,c,d,e,f,g,
]
The source code for this example can be found The source code for this example can be found
[example_link indirect_iterator_example.cpp..here]. [example_link indirect_iterator_example.cpp..here].

View File

@ -305,4 +305,3 @@ library you see today.
Patterns, C++ Report, February 1995, pp. 24-27.] Patterns, C++ Report, February 1995, pp. 24-27.]
[endsect] [endsect]

View File

@ -1,4 +1,3 @@
[section:iterator_traits Iterator Traits] [section:iterator_traits Iterator Traits]
`std::iterator_traits` provides access to five associated types `std::iterator_traits` provides access to five associated types

View File

@ -1,4 +1,3 @@
[section:permutation Permutation Iterator] [section:permutation Permutation Iterator]
The permutation iterator adaptor provides a permuted view of a given The permutation iterator adaptor provides a permuted view of a given
@ -75,13 +74,14 @@ past-the-end iterator to the indices.
The output is: The output is:
The original range is : 0 1 2 3 4 5 6 7 8 9 [pre
The reindexing scheme is : 9 8 7 6 The original range is : 0 1 2 3 4 5 6 7 8 9
The permutated range is : 9 8 7 6 The reindexing scheme is : 9 8 7 6
Elements at even indices in the permutation : 9 7 The permutated range is : 9 8 7 6
Permutation backwards : 6 7 8 9 Elements at even indices in the permutation : 9 7
Iterate backward with stride 2 : 6 8 Permutation backwards : 6 7 8 9
Iterate backward with stride 2 : 6 8
]
The source code for this example can be found The source code for this example can be found
[example_link permutation_iter_example.cpp..here]. [example_link permutation_iter_example.cpp..here].

View File

@ -1,4 +1,3 @@
[section:reverse Reverse Iterator] [section:reverse Reverse Iterator]
The reverse iterator adaptor iterates through the adapted iterator The reverse iterator adaptor iterates through the adapted iterator
@ -9,7 +8,6 @@ range in the opposite direction.
The following example prints an array of characters in reverse order The following example prints an array of characters in reverse order
using `reverse_iterator`. using `reverse_iterator`.
char letters_[] = "hello world!"; char letters_[] = "hello world!";
const int N = sizeof(letters_)/sizeof(char) - 1; const int N = sizeof(letters_)/sizeof(char) - 1;
typedef char* base_iterator; typedef char* base_iterator;
@ -35,10 +33,11 @@ using `reverse_iterator`.
The output is: The output is:
original sequence of letters: hello world! [pre
sequence in reverse order: !dlrow olleh original sequence of letters: hello world!
sequence in double-reversed (normal) order: hello world! sequence in reverse order: !dlrow olleh
sequence in double-reversed (normal) order: hello world!
]
The source code for this example can be found The source code for this example can be found
[example_link reverse_iterator_example.cpp..here]. [example_link reverse_iterator_example.cpp..here].

View File

@ -1,4 +1,3 @@
[section:shared_container Shared Container Iterator] [section:shared_container Shared Container Iterator]
Defined in header [@../../../boost/shared_container_iterator.hpp `boost/shared_container_iterator.hpp`]. Defined in header [@../../../boost/shared_container_iterator.hpp `boost/shared_container_iterator.hpp`].
@ -97,7 +96,9 @@ the underlying vector and thereby extend the container's lifetime.
The output from this part is: The output from this part is:
0,1,2,3,4,5, [pre
0,1,2,3,4,5,
]
[table Template Parameters [table Template Parameters
[[Parameter][Description]] [[Parameter][Description]]

View File

@ -1,4 +1,3 @@
[section:specialized Specialized Adaptors] [section:specialized Specialized Adaptors]
[include ./counting_iterator.qbk] [include ./counting_iterator.qbk]

View File

@ -1,4 +1,3 @@
[section:transform Transform Iterator] [section:transform Transform Iterator]
The transform iterator adapts an iterator by modifying the The transform iterator adapts an iterator by modifying the
@ -14,34 +13,35 @@ generate iterators that multiply (or add to) the value returned by
dereferencing the iterator. It would be cooler to use lambda library dereferencing the iterator. It would be cooler to use lambda library
in this example. in this example.
int x[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; int x[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
const int N = sizeof(x)/sizeof(int); const int N = sizeof(x)/sizeof(int);
typedef boost::binder1st< std::multiplies<int> > Function; typedef boost::binder1st< std::multiplies<int> > Function;
typedef boost::transform_iterator<Function, int*> doubling_iterator; typedef boost::transform_iterator<Function, int*> doubling_iterator;
doubling_iterator i(x, boost::bind1st(std::multiplies<int>(), 2)), doubling_iterator i(x, boost::bind1st(std::multiplies<int>(), 2)),
i_end(x + N, boost::bind1st(std::multiplies<int>(), 2)); i_end(x + N, boost::bind1st(std::multiplies<int>(), 2));
std::cout << "multiplying the array by 2:" << std::endl; std::cout << "multiplying the array by 2:" << std::endl;
while (i != i_end) while (i != i_end)
std::cout << *i++ << " "; std::cout << *i++ << " ";
std::cout << std::endl; std::cout << std::endl;
std::cout << "adding 4 to each element in the array:" << std::endl; std::cout << "adding 4 to each element in the array:" << std::endl;
std::copy(boost::make_transform_iterator(x, boost::bind1st(std::plus<int>(), 4)), std::copy(boost::make_transform_iterator(x, boost::bind1st(std::plus<int>(), 4)),
boost::make_transform_iterator(x + N, boost::bind1st(std::plus<int>(), 4)), boost::make_transform_iterator(x + N, boost::bind1st(std::plus<int>(), 4)),
std::ostream_iterator<int>(std::cout, " ")); std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl; std::cout << std::endl;
The output is: The output is:
multiplying the array by 2: [pre
2 4 6 8 10 12 14 16 multiplying the array by 2:
adding 4 to each element in the array: 2 4 6 8 10 12 14 16
5 6 7 8 9 10 11 12 adding 4 to each element in the array:
5 6 7 8 9 10 11 12
]
The source code for this example can be found The source code for this example can be found
[example_link transform_iterator_example.cpp..here]. [example_link transform_iterator_example.cpp..here].
@ -143,11 +143,11 @@ the `Iterator` argument models.
[table Category [table Category
[[If `Iterator` models][then `transform_iterator` models]] [[If `Iterator` models][then `transform_iterator` models]]
[[Single Pass Iterator][Input Iterator]] [[Single Pass Iterator][Input Iterator]]
[[Forward Traversal Iterator][Forward Iterator]] [[Forward Traversal Iterator][Forward Iterator]]
[[Bidirectional Traversal Iterator][Bidirectional Iterator]] [[Bidirectional Traversal Iterator][Bidirectional Iterator]]
[[Random Access Traversal Iterator][Random Access Iterator]] [[Random Access Traversal Iterator][Random Access Iterator]]
] ]
If `transform_iterator` models Writable Lvalue Iterator then it is a If `transform_iterator` models Writable Lvalue Iterator then it is a
@ -177,7 +177,7 @@ operations:
template<class F2, class I2, class R2, class V2> template<class F2, class I2, class R2, class V2>
transform_iterator( transform_iterator(
transform_iterator<F2, I2, R2, V2> const& t transform_iterator<F2, I2, R2, V2> const& t
, typename enable_if_convertible<I2, Iterator>::type* = 0 // exposition only , typename enable_if_convertible<I2, Iterator>::type* = 0 // exposition only
, typename enable_if_convertible<F2, UnaryFunction>::type* = 0 // exposition only , typename enable_if_convertible<F2, UnaryFunction>::type* = 0 // exposition only
); );

View File

@ -1,4 +1,3 @@
[section:zip Zip Iterator] [section:zip Zip Iterator]
The zip iterator provides the ability to parallel-iterate The zip iterator provides the ability to parallel-iterate