diff --git a/doc/html/index.html b/doc/html/index.html index 8b74c06..dd72835 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -30,7 +30,7 @@
-

+

Distributed under 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)

@@ -143,7 +143,7 @@

- +

Last revised: December 23, 2010 at 17:58:25 GMT

Last revised: December 26, 2010 at 20:24:07 GMT


diff --git a/doc/html/range/concepts/bidirectional_range.html b/doc/html/range/concepts/bidirectional_range.html index ba06db0..8e05a64 100644 --- a/doc/html/range/concepts/bidirectional_range.html +++ b/doc/html/range/concepts/bidirectional_range.html @@ -27,7 +27,7 @@ Bidirectional Range
- + Notation
@@ -65,7 +65,7 @@
- + Description

@@ -75,7 +75,7 @@ Traversal Iterator.

- + Refinement of
@@ -83,7 +83,7 @@ Forward Range

- + Associated types
@@ -136,7 +136,7 @@
- + Valid expressions
@@ -221,7 +221,7 @@
- + Complexity guarantees
@@ -232,7 +232,7 @@ Forward Range.

- + Invariants
@@ -272,7 +272,7 @@
- + See also

diff --git a/doc/html/range/concepts/concept_checking.html b/doc/html/range/concepts/concept_checking.html index db21dbb..ae552a4 100644 --- a/doc/html/range/concepts/concept_checking.html +++ b/doc/html/range/concepts/concept_checking.html @@ -79,7 +79,7 @@

- + See also

diff --git a/doc/html/range/concepts/forward_range.html b/doc/html/range/concepts/forward_range.html index 95b7dac..be65866 100644 --- a/doc/html/range/concepts/forward_range.html +++ b/doc/html/range/concepts/forward_range.html @@ -27,7 +27,7 @@ Forward Range

- + Notation
@@ -65,7 +65,7 @@
- + Description

@@ -73,14 +73,14 @@ Traversal Iterator.

- + Refinement of

Single Pass Range

- + Associated types
@@ -132,7 +132,7 @@
- + See also

diff --git a/doc/html/range/concepts/random_access_range.html b/doc/html/range/concepts/random_access_range.html index fa49539..5a50b04 100644 --- a/doc/html/range/concepts/random_access_range.html +++ b/doc/html/range/concepts/random_access_range.html @@ -27,7 +27,7 @@ Random Access Range

- + Description

@@ -35,7 +35,7 @@ Access Traversal Iterator.

- + Refinement of
@@ -43,7 +43,7 @@ Bidirectional Range

- + Valid expressions
@@ -89,7 +89,7 @@
- + Expression semantics
@@ -139,7 +139,7 @@
- + Complexity guarantees
@@ -147,7 +147,7 @@ boost::size(a) completes in amortized constant time.

- + Invariants
diff --git a/doc/html/range/concepts/single_pass_range.html b/doc/html/range/concepts/single_pass_range.html index a9acb72..207c57c 100644 --- a/doc/html/range/concepts/single_pass_range.html +++ b/doc/html/range/concepts/single_pass_range.html @@ -27,7 +27,7 @@ Single Pass Range
- + Notation
@@ -65,7 +65,7 @@
- + Description

@@ -73,7 +73,7 @@ Pass Iterator.

- + Associated types
@@ -126,7 +126,7 @@
- + Valid expressions
@@ -198,7 +198,7 @@
- + Expression semantics
@@ -266,7 +266,7 @@
- + Complexity guarantees
@@ -276,7 +276,7 @@ constant time.

- + Invariants
@@ -316,7 +316,7 @@
- + See also

diff --git a/doc/html/range/history_ack.html b/doc/html/range/history_ack.html index 8c99a63..29c6173 100644 --- a/doc/html/range/history_ack.html +++ b/doc/html/range/history_ack.html @@ -26,7 +26,7 @@ History and Acknowledgement

- + Version 1 - before Boost 1.43

@@ -79,7 +79,7 @@ The concept checks and their documentation was provided by Daniel Walker.

- + Version 2 - Boost 1.43 and beyond

diff --git a/doc/html/range/introduction.html b/doc/html/range/introduction.html index 07af796..d3c86a1 100644 --- a/doc/html/range/introduction.html +++ b/doc/html/range/introduction.html @@ -70,7 +70,7 @@

- + Example - Iterate over the values in a map

@@ -84,7 +84,7 @@

- + Example - Iterate over the keys in a map

@@ -98,7 +98,7 @@

- + Example - Push the even values from a map in reverse order into the container target

diff --git a/doc/html/range/mfc_atl.html b/doc/html/range/mfc_atl.html index 91938cc..633143c 100644 --- a/doc/html/range/mfc_atl.html +++ b/doc/html/range/mfc_atl.html @@ -34,7 +34,7 @@
References
- + Introduction

@@ -100,7 +100,7 @@

- + Overview

diff --git a/doc/html/range/reference/adaptors/introduction.html b/doc/html/range/reference/adaptors/introduction.html index d3e606b..7eff9ad 100644 --- a/doc/html/range/reference/adaptors/introduction.html +++ b/doc/html/range/reference/adaptors/introduction.html @@ -122,7 +122,7 @@ situations, you will really appreciate the succinctness of operator|().

- + Composition of Adaptors
@@ -169,7 +169,7 @@ is the design solution to this problem.

- + Range Adaptor alternative to copy_if algorithm
@@ -186,7 +186,7 @@

- + Range Adaptor alternative to count_if algorithm
diff --git a/doc/html/range/reference/adaptors/reference/strided.html b/doc/html/range/reference/adaptors/reference/strided.html index e79f8cf..c28ac99 100644 --- a/doc/html/range/reference/adaptors/reference/strided.html +++ b/doc/html/range/reference/adaptors/reference/strided.html @@ -77,9 +77,7 @@
- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -60,14 +60,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/heap_algorithm.hpp

- + Requirements

@@ -118,7 +118,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/heap/pop_heap.html b/doc/html/range/reference/algorithms/heap/pop_heap.html index 4926fa5..28b2136 100644 --- a/doc/html/range/reference/algorithms/heap/pop_heap.html +++ b/doc/html/range/reference/algorithms/heap/pop_heap.html @@ -27,7 +27,7 @@ pop_heap

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -62,14 +62,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/heap_algorithm.hpp

- + Requirements

@@ -120,7 +120,7 @@

- + Precondition:
- + Complexity

diff --git a/doc/html/range/reference/algorithms/heap/push_heap.html b/doc/html/range/reference/algorithms/heap/push_heap.html index 976aece..dd04458 100644 --- a/doc/html/range/reference/algorithms/heap/push_heap.html +++ b/doc/html/range/reference/algorithms/heap/push_heap.html @@ -27,7 +27,7 @@ push_heap

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -62,14 +62,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/heap_algorithm.hpp

- + Requirements

@@ -120,7 +120,7 @@

- + Precondition:
- + Complexity

diff --git a/doc/html/range/reference/algorithms/heap/sort_heap.html b/doc/html/range/reference/algorithms/heap/sort_heap.html index 4366d76..67704a1 100644 --- a/doc/html/range/reference/algorithms/heap/sort_heap.html +++ b/doc/html/range/reference/algorithms/heap/sort_heap.html @@ -27,7 +27,7 @@ sort_heap

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -61,14 +61,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/heap_algorithm.hpp

- + Requirements

@@ -119,14 +119,14 @@

- + Precondition:

rng is a heap.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/copy.html b/doc/html/range/reference/algorithms/mutating/copy.html index bfa49dc..3f3b716 100644 --- a/doc/html/range/reference/algorithms/mutating/copy.html +++ b/doc/html/range/reference/algorithms/mutating/copy.html @@ -27,7 +27,7 @@ copy

- + Prototype

@@ -39,7 +39,7 @@

- + Description

@@ -50,14 +50,14 @@ distance(source_rng)

- + Definition

Defined in the header file boost/range/algorithm/copy.hpp

- + Requirements
- + Precondition:
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/copy_backward.html b/doc/html/range/reference/algorithms/mutating/copy_backward.html index 2c79bf9..0666568 100644 --- a/doc/html/range/reference/algorithms/mutating/copy_backward.html +++ b/doc/html/range/reference/algorithms/mutating/copy_backward.html @@ -27,7 +27,7 @@ copy_backward

- + Prototype

@@ -41,7 +41,7 @@

- + Description

@@ -59,14 +59,14 @@ denotes the end of the output sequence.

- + Definition

Defined in the header file boost/range/algorithm/copy_backward.hpp

- + Requirements
- + Precondition:
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/fill.html b/doc/html/range/reference/algorithms/mutating/fill.html index 77c78c6..5c0d18c 100644 --- a/doc/html/range/reference/algorithms/mutating/fill.html +++ b/doc/html/range/reference/algorithms/mutating/fill.html @@ -27,7 +27,7 @@ fill

- + Prototype

@@ -39,7 +39,7 @@

- + Description

@@ -48,14 +48,14 @@ in the range rng.

- + Definition

Defined in the header file boost/range/algorithm/fill.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/fill_n.html b/doc/html/range/reference/algorithms/mutating/fill_n.html index 5a7fb40..a9d046e 100644 --- a/doc/html/range/reference/algorithms/mutating/fill_n.html +++ b/doc/html/range/reference/algorithms/mutating/fill_n.html @@ -27,7 +27,7 @@ fill_n

- + Prototype

@@ -39,7 +39,7 @@

- + Description

@@ -47,14 +47,14 @@ val to n elements in the range rng begining with boost::begin(rng).

- + Definition

Defined in the header file boost/range/algorithm/fill_n.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/generate.html b/doc/html/range/reference/algorithms/mutating/generate.html index d28c8ca..0ae40e3 100644 --- a/doc/html/range/reference/algorithms/mutating/generate.html +++ b/doc/html/range/reference/algorithms/mutating/generate.html @@ -27,7 +27,7 @@ generate

- + Prototype

@@ -42,7 +42,7 @@

- + Description

@@ -52,14 +52,14 @@ Returns the resultant range.

- + Definition

Defined in the header file boost/range/algorithm/generate.hpp

- + Requirements
- + Precondition:
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/inplace_merge.html b/doc/html/range/reference/algorithms/mutating/inplace_merge.html index a14c627..f016299 100644 --- a/doc/html/range/reference/algorithms/mutating/inplace_merge.html +++ b/doc/html/range/reference/algorithms/mutating/inplace_merge.html @@ -27,7 +27,7 @@ inplace_merge

- + Prototype

@@ -58,7 +58,7 @@

- + Description

@@ -71,14 +71,14 @@ input range is preserved.

- + Definition

Defined in the header file boost/range/algorithm/inplace_merge.hpp

- + Requirements

@@ -115,11 +115,11 @@ argument types.

- + Precondition:
- + For the non-predicate version:
@@ -142,7 +142,7 @@
- + For the predicate version:
@@ -163,7 +163,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/merge.html b/doc/html/range/reference/algorithms/mutating/merge.html index f847d5d..5ace880 100644 --- a/doc/html/range/reference/algorithms/mutating/merge.html +++ b/doc/html/range/reference/algorithms/mutating/merge.html @@ -27,7 +27,7 @@ merge

- + Prototype

@@ -56,7 +56,7 @@

- + Description

@@ -75,14 +75,14 @@ version uses the predicate instead of operator<().

- + Definition

Defined in the header file boost/range/algorithm/merge.hpp

- + Requirements

@@ -150,11 +150,11 @@

- + Precondition:
- + For the non-predicate version:
@@ -194,7 +194,7 @@
- + For the predicate version:
@@ -230,7 +230,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/nth_element.html b/doc/html/range/reference/algorithms/mutating/nth_element.html index 624dfb2..8f7dca5 100644 --- a/doc/html/range/reference/algorithms/mutating/nth_element.html +++ b/doc/html/range/reference/algorithms/mutating/nth_element.html @@ -27,7 +27,7 @@ nth_element

- + Prototype

@@ -58,7 +58,7 @@

- + Description

@@ -69,14 +69,14 @@ is the same as the element that would be in that position if rng has been sorted.

- + Definition

Defined in the header file boost/range/algorithm/nth_element.hpp

- + Requirements

@@ -127,7 +127,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/partial_sort.html b/doc/html/range/reference/algorithms/mutating/partial_sort.html index 12a4024..4680deb 100644 --- a/doc/html/range/reference/algorithms/mutating/partial_sort.html +++ b/doc/html/range/reference/algorithms/mutating/partial_sort.html @@ -27,7 +27,7 @@ partial_sort

- + Prototype

@@ -58,7 +58,7 @@

- + Description

@@ -74,14 +74,14 @@ predicate instead.

- + Definition

Defined in the header file boost/range/algorithm/partial_sort.hpp

- + Requirements

@@ -132,7 +132,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/partition.html b/doc/html/range/reference/algorithms/mutating/partition.html index 0cd0c73..3096601 100644 --- a/doc/html/range/reference/algorithms/mutating/partition.html +++ b/doc/html/range/reference/algorithms/mutating/partition.html @@ -27,7 +27,7 @@ partition

- + Prototype

@@ -66,7 +66,7 @@

- + Description

@@ -80,14 +80,14 @@ corresponds to the middle iterator.

- + Definition

Defined in the header file boost/range/algorithm/partition.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/random_shuffle.html b/doc/html/range/reference/algorithms/mutating/random_shuffle.html index f1a3c6c..46ecde7 100644 --- a/doc/html/range/reference/algorithms/mutating/random_shuffle.html +++ b/doc/html/range/reference/algorithms/mutating/random_shuffle.html @@ -27,7 +27,7 @@ random_shuffle

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -60,14 +60,14 @@ the shuffles range.

- + Definition

Defined in the header file boost/range/algorithm/random_shuffle.hpp

- + Requirements

@@ -98,7 +98,7 @@

- + Precondition:
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/remove.html b/doc/html/range/reference/algorithms/mutating/remove.html index 618d087..7a9359f 100644 --- a/doc/html/range/reference/algorithms/mutating/remove.html +++ b/doc/html/range/reference/algorithms/mutating/remove.html @@ -27,7 +27,7 @@ remove

- + Prototype

@@ -66,7 +66,7 @@

- + Description

@@ -83,14 +83,14 @@ are dereferenceable, but the elements are unspecified.

- + Definition

Defined in the header file boost/range/algorithm/remove.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/remove_copy.html b/doc/html/range/reference/algorithms/mutating/remove_copy.html index 410848d..69ef4fe 100644 --- a/doc/html/range/reference/algorithms/mutating/remove_copy.html +++ b/doc/html/range/reference/algorithms/mutating/remove_copy.html @@ -27,7 +27,7 @@ remove_copy

- + Prototype

@@ -44,7 +44,7 @@

- + Description

@@ -53,14 +53,14 @@ rng for which x == val is false.

- + Definition

Defined in the header file boost/range/algorithm/remove_copy.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/remove_copy_if.html b/doc/html/range/reference/algorithms/mutating/remove_copy_if.html index ed95b13..0d5c74b 100644 --- a/doc/html/range/reference/algorithms/mutating/remove_copy_if.html +++ b/doc/html/range/reference/algorithms/mutating/remove_copy_if.html @@ -27,7 +27,7 @@ remove_copy_if

- + Prototype

@@ -44,7 +44,7 @@

- + Description

@@ -54,14 +54,14 @@ is false.

- + Definition

Defined in the header file boost/range/algorithm/remove_copy_if.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/remove_if.html b/doc/html/range/reference/algorithms/mutating/remove_if.html index 113d9dd..5fed73d 100644 --- a/doc/html/range/reference/algorithms/mutating/remove_if.html +++ b/doc/html/range/reference/algorithms/mutating/remove_if.html @@ -27,7 +27,7 @@ remove_if

- + Prototype

@@ -66,7 +66,7 @@

- + Description

@@ -82,14 +82,14 @@ are unspecified.

- + Definition

Defined in the header file boost/range/algorithm/remove_if.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/replace.html b/doc/html/range/reference/algorithms/mutating/replace.html index 9055f9a..c113746 100644 --- a/doc/html/range/reference/algorithms/mutating/replace.html +++ b/doc/html/range/reference/algorithms/mutating/replace.html @@ -27,7 +27,7 @@ replace

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -57,14 +57,14 @@ Return a reference to rng.

- + Definition

Defined in the header file boost/range/algorithm/replace.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/replace_copy.html b/doc/html/range/reference/algorithms/mutating/replace_copy.html index 267f594..9d32712 100644 --- a/doc/html/range/reference/algorithms/mutating/replace_copy.html +++ b/doc/html/range/reference/algorithms/mutating/replace_copy.html @@ -27,7 +27,7 @@ replace_copy

- + Prototype

@@ -40,7 +40,7 @@

- + Description

@@ -53,14 +53,14 @@ x.

- + Definition

Defined in the header file boost/range/algorithm/replace_copy.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/replace_copy_if.html b/doc/html/range/reference/algorithms/mutating/replace_copy_if.html index b053c1e..663d200 100644 --- a/doc/html/range/reference/algorithms/mutating/replace_copy_if.html +++ b/doc/html/range/reference/algorithms/mutating/replace_copy_if.html @@ -27,7 +27,7 @@ replace_copy_if

- + Prototype

@@ -40,7 +40,7 @@

- + Description

@@ -51,14 +51,14 @@ : x.

- + Definition

Defined in the header file boost/range/algorithm/replace_copy_if.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/replace_if.html b/doc/html/range/reference/algorithms/mutating/replace_if.html index f63c30e..f48c04c 100644 --- a/doc/html/range/reference/algorithms/mutating/replace_if.html +++ b/doc/html/range/reference/algorithms/mutating/replace_if.html @@ -27,7 +27,7 @@ replace_if

- + Prototype

@@ -42,7 +42,7 @@

- + Description

@@ -51,14 +51,14 @@ Returns a reference to rng.

- + Definition

Defined in the header file boost/range/algorithm/replace_if.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/reverse.html b/doc/html/range/reference/algorithms/mutating/reverse.html index 2e8262b..1fa1212 100644 --- a/doc/html/range/reference/algorithms/mutating/reverse.html +++ b/doc/html/range/reference/algorithms/mutating/reverse.html @@ -27,7 +27,7 @@ reverse

- + Prototype

@@ -42,7 +42,7 @@

- + Description

@@ -50,14 +50,14 @@ Returns a reference to the reversed range.

- + Definition

Defined in the header file boost/range/algorithm/reverse.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/reverse_copy.html b/doc/html/range/reference/algorithms/mutating/reverse_copy.html index ea0d3e9..0792e40 100644 --- a/doc/html/range/reference/algorithms/mutating/reverse_copy.html +++ b/doc/html/range/reference/algorithms/mutating/reverse_copy.html @@ -27,7 +27,7 @@ reverse_copy

- + Prototype

@@ -39,7 +39,7 @@

- + Description

@@ -49,14 +49,14 @@ Returns the output iterator one passed the last copied element.

- + Definition

Defined in the header file boost/range/algorithm/reverse_copy.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/rotate.html b/doc/html/range/reference/algorithms/mutating/rotate.html index 4b55abb..686c674 100644 --- a/doc/html/range/reference/algorithms/mutating/rotate.html +++ b/doc/html/range/reference/algorithms/mutating/rotate.html @@ -27,7 +27,7 @@ rotate

- + Prototype

@@ -44,7 +44,7 @@

- + Description

@@ -53,14 +53,14 @@ and [middle, end(rng)). Returns a reference to rng.

- + Definition

Defined in the header file boost/range/algorithm/rotate.hpp

- + Requirements
- + Precondition:
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/rotate_copy.html b/doc/html/range/reference/algorithms/mutating/rotate_copy.html index 497fa1d..13faf01 100644 --- a/doc/html/range/reference/algorithms/mutating/rotate_copy.html +++ b/doc/html/range/reference/algorithms/mutating/rotate_copy.html @@ -27,7 +27,7 @@ rotate_copy

- + Prototype

@@ -42,7 +42,7 @@

- + Description

@@ -51,14 +51,14 @@ and [middle, end(rng)) to out.

- + Definition

Defined in the header file boost/range/algorithm/rotate_copy.hpp

- + Requirements
- + Precondition:
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/sort.html b/doc/html/range/reference/algorithms/mutating/sort.html index db9444b..3c60584 100644 --- a/doc/html/range/reference/algorithms/mutating/sort.html +++ b/doc/html/range/reference/algorithms/mutating/sort.html @@ -27,7 +27,7 @@ sort

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -71,14 +71,14 @@ [x,y], pred(y, x) == false.

- + Definition

Defined in the header file boost/range/algorithm/sort.hpp

- + Requirements

@@ -129,7 +129,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/stable_partition.html b/doc/html/range/reference/algorithms/mutating/stable_partition.html index bd77f3c..d9db715 100644 --- a/doc/html/range/reference/algorithms/mutating/stable_partition.html +++ b/doc/html/range/reference/algorithms/mutating/stable_partition.html @@ -27,7 +27,7 @@ stable_partition

- + Prototype

@@ -60,7 +60,7 @@

- + Description

@@ -82,14 +82,14 @@ the iterator to the first element that fails to satisfy pred.

- + Definition

Defined in the header file boost/range/algorithm/stable_partition.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/stable_sort.html b/doc/html/range/reference/algorithms/mutating/stable_sort.html index 6196114..7bb21a3 100644 --- a/doc/html/range/reference/algorithms/mutating/stable_sort.html +++ b/doc/html/range/reference/algorithms/mutating/stable_sort.html @@ -27,7 +27,7 @@ stable_sort

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -71,14 +71,14 @@ [x,y], pred(y,x) == false.

- + Definition

Defined in the header file boost/range/algorithm/stable_sort.hpp

- + Requirements

@@ -129,7 +129,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/swap_ranges.html b/doc/html/range/reference/algorithms/mutating/swap_ranges.html index 2e818ce..ae53329 100644 --- a/doc/html/range/reference/algorithms/mutating/swap_ranges.html +++ b/doc/html/range/reference/algorithms/mutating/swap_ranges.html @@ -27,7 +27,7 @@ swap_ranges

- + Prototype

@@ -39,7 +39,7 @@

- + Description

@@ -49,14 +49,14 @@ Returns a reference to rng2.

- + Definition

Defined in the header file boost/range/algorithm/swap_ranges.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/transform.html b/doc/html/range/reference/algorithms/mutating/transform.html index 068db05..a5438e8 100644 --- a/doc/html/range/reference/algorithms/mutating/transform.html +++ b/doc/html/range/reference/algorithms/mutating/transform.html @@ -27,7 +27,7 @@ transform

- + Prototype

@@ -56,7 +56,7 @@

- + Description

@@ -92,14 +92,14 @@ The return value is out + min(distance(rng1), distance(rng2)).

- + Definition

Defined in the header file boost/range/algorithm/transform.hpp

- + Requirements

@@ -169,7 +169,7 @@

- + Precondition:

@@ -203,7 +203,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/unique.html b/doc/html/range/reference/algorithms/mutating/unique.html index e36cbfe..10334bd 100644 --- a/doc/html/range/reference/algorithms/mutating/unique.html +++ b/doc/html/range/reference/algorithms/mutating/unique.html @@ -27,7 +27,7 @@ unique

- + Prototype

@@ -68,7 +68,7 @@

- + Description

@@ -86,14 +86,14 @@ type.

- + Definition

Defined in the header file boost/range/algorithm/unique.hpp

- + Requirements

@@ -137,7 +137,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/mutating/unique_copy.html b/doc/html/range/reference/algorithms/mutating/unique_copy.html index 432191e..780d610 100644 --- a/doc/html/range/reference/algorithms/mutating/unique_copy.html +++ b/doc/html/range/reference/algorithms/mutating/unique_copy.html @@ -27,7 +27,7 @@ unique_copy

- + Prototype

@@ -42,7 +42,7 @@

- + Description

@@ -55,14 +55,14 @@ value type.

- + Definition

Defined in the header file boost/range/algorithm/unique_copy.hpp

- + Requirements

@@ -116,7 +116,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/copy_n.html b/doc/html/range/reference/algorithms/new/copy_n.html index dedfad3..993178e 100644 --- a/doc/html/range/reference/algorithms/new/copy_n.html +++ b/doc/html/range/reference/algorithms/new/copy_n.html @@ -27,7 +27,7 @@ copy_n

- + Prototype

@@ -39,7 +39,7 @@

- + Description

@@ -53,14 +53,14 @@ from [boost::begin(rng), boost::begin(rng) + n) to the range [out, out + n)

- + Definition

Defined in the header file boost/range/algorithm_ext/copy_n.hpp

- + Requirements
    @@ -79,7 +79,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/erase.html b/doc/html/range/reference/algorithms/new/erase.html index ef49c5f..914cbc2 100644 --- a/doc/html/range/reference/algorithms/new/erase.html +++ b/doc/html/range/reference/algorithms/new/erase.html @@ -27,7 +27,7 @@ erase

- + Prototype

@@ -41,7 +41,7 @@

- + Description

@@ -58,14 +58,14 @@ the frequently used combination equivalent to target.erase(std::remove_if(target.begin(), target.end(), pred), target.end());

- + Definition

Defined in the header file boost/range/algorithm_ext/erase.hpp

- + Requirements
  1. @@ -73,7 +73,7 @@ erase of an iterator range.
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/for_each.html b/doc/html/range/reference/algorithms/new/for_each.html index 15ec17b..1a71131 100644 --- a/doc/html/range/reference/algorithms/new/for_each.html +++ b/doc/html/range/reference/algorithms/new/for_each.html @@ -27,7 +27,7 @@ for_each

- + Prototype

@@ -72,7 +72,7 @@

- + Description

@@ -88,14 +88,14 @@ It is safe to call this function with unequal length ranges.

- + Definition

Defined in the header file boost/range/algorithm_ext/for_each.hpp

- + Requirements
    @@ -125,7 +125,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/insert.html b/doc/html/range/reference/algorithms/new/insert.html index dec9b6a..acd7dc4 100644 --- a/doc/html/range/reference/algorithms/new/insert.html +++ b/doc/html/range/reference/algorithms/new/insert.html @@ -27,7 +27,7 @@ insert

- + Prototype

@@ -44,7 +44,7 @@

- + Description

@@ -54,14 +54,14 @@ target.

- + Definition

Defined in the header file boost/range/algorithm_ext/insert.hpp

- + Requirements
    @@ -81,7 +81,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/iota.html b/doc/html/range/reference/algorithms/new/iota.html index b3c8c06..4592a49 100644 --- a/doc/html/range/reference/algorithms/new/iota.html +++ b/doc/html/range/reference/algorithms/new/iota.html @@ -27,7 +27,7 @@ iota

- + Prototype

@@ -39,7 +39,7 @@

- + Description

@@ -50,14 +50,14 @@ + boost::distance(boost::begin(rng), it)

- + Definition

Defined in the header file boost/range/algorithm_ext/iota.hpp

- + Requirements
    @@ -73,7 +73,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/is_sorted.html b/doc/html/range/reference/algorithms/new/is_sorted.html index 93e9ee9..4410229 100644 --- a/doc/html/range/reference/algorithms/new/is_sorted.html +++ b/doc/html/range/reference/algorithms/new/is_sorted.html @@ -27,7 +27,7 @@ is_sorted

- + Prototype

@@ -42,7 +42,7 @@

- + Description

@@ -58,14 +58,14 @@ is true.

- + Definition

Defined in the header file boost/range/algorithm_ext/is_sorted.hpp

- + Requirements
    @@ -85,7 +85,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/overwrite.html b/doc/html/range/reference/algorithms/new/overwrite.html index 914a4e8..8bca784 100644 --- a/doc/html/range/reference/algorithms/new/overwrite.html +++ b/doc/html/range/reference/algorithms/new/overwrite.html @@ -27,7 +27,7 @@ overwrite

- + Prototype

@@ -43,7 +43,7 @@

- + Description

@@ -52,14 +52,14 @@ into the range to.

- + Definition

Defined in the header file boost/range/algorithm_ext/overwrite.hpp

- + Requirements
    @@ -88,7 +88,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/push_back.html b/doc/html/range/reference/algorithms/new/push_back.html index 58dd060..aab0de6 100644 --- a/doc/html/range/reference/algorithms/new/push_back.html +++ b/doc/html/range/reference/algorithms/new/push_back.html @@ -27,7 +27,7 @@ push_back

- + Prototype

@@ -43,7 +43,7 @@

- + Description

@@ -52,14 +52,14 @@ to the back of the container target.

- + Definition

Defined in the header file boost/range/algorithm_ext/push_back.hpp

- + Requirements
    @@ -79,7 +79,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/push_front.html b/doc/html/range/reference/algorithms/new/push_front.html index 8650468..f89862c 100644 --- a/doc/html/range/reference/algorithms/new/push_front.html +++ b/doc/html/range/reference/algorithms/new/push_front.html @@ -27,7 +27,7 @@ push_front

- + Prototype

@@ -43,7 +43,7 @@

- + Description

@@ -52,14 +52,14 @@ to the front of the container target.

- + Definition

Defined in the header file boost/range/algorithm_ext/push_front.hpp

- + Requirements
    @@ -79,7 +79,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/remove_erase.html b/doc/html/range/reference/algorithms/new/remove_erase.html index b28ecfe..74a8087 100644 --- a/doc/html/range/reference/algorithms/new/remove_erase.html +++ b/doc/html/range/reference/algorithms/new/remove_erase.html @@ -27,7 +27,7 @@ remove_erase

- + Prototype

@@ -40,7 +40,7 @@

- + Description

@@ -50,14 +50,14 @@ algorithm which merely rearranges elements.

- + Definition

Defined in the header file boost/range/algorithm_ext/erase.hpp

- + Requirements
  1. @@ -65,7 +65,7 @@ erase of an iterator range.
- + Complexity

diff --git a/doc/html/range/reference/algorithms/new/remove_erase_if.html b/doc/html/range/reference/algorithms/new/remove_erase_if.html index f66b732..87f2032 100644 --- a/doc/html/range/reference/algorithms/new/remove_erase_if.html +++ b/doc/html/range/reference/algorithms/new/remove_erase_if.html @@ -27,7 +27,7 @@ remove_erase_if

- + Prototype

@@ -40,7 +40,7 @@

- + Description

@@ -51,14 +51,14 @@ algorithm which merely rearranges elements.

- + Definition

Defined in the header file boost/range/algorithm_ext/erase.hpp

- + Requirements
    @@ -72,7 +72,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html b/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html index b4e1ec3..8a55028 100644 --- a/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html +++ b/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html @@ -27,7 +27,7 @@ adjacent_find

- + Prototype

@@ -76,7 +76,7 @@

- + Description

@@ -97,14 +97,14 @@ is true.

- + Definition

Defined in the header file boost/range/algorithm/adjacent_find.hpp

- + Requirements

@@ -142,7 +142,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/binary_search.html b/doc/html/range/reference/algorithms/non_mutating/binary_search.html index b48a47e..986e721 100644 --- a/doc/html/range/reference/algorithms/non_mutating/binary_search.html +++ b/doc/html/range/reference/algorithms/non_mutating/binary_search.html @@ -27,7 +27,7 @@ binary_search

- + Prototype

@@ -42,7 +42,7 @@

- + Description

@@ -52,14 +52,14 @@ range rng.

- + Definition

Defined in the header file boost/range/algorithm/binary_search.hpp

- + Requirements

@@ -110,7 +110,7 @@

- + Precondition:

@@ -128,7 +128,7 @@ order according to the function object pred.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/count.html b/doc/html/range/reference/algorithms/non_mutating/count.html index 75b364e..ebd8888 100644 --- a/doc/html/range/reference/algorithms/non_mutating/count.html +++ b/doc/html/range/reference/algorithms/non_mutating/count.html @@ -27,7 +27,7 @@ count

- + Prototype

@@ -44,7 +44,7 @@

- + Description

@@ -54,14 +54,14 @@ is true.

- + Definition

Defined in the header file boost/range/algorithm/count.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/count_if.html b/doc/html/range/reference/algorithms/non_mutating/count_if.html index b50203b..fb19ad7 100644 --- a/doc/html/range/reference/algorithms/non_mutating/count_if.html +++ b/doc/html/range/reference/algorithms/non_mutating/count_if.html @@ -27,7 +27,7 @@ count_if

- + Prototype

@@ -40,7 +40,7 @@

- + Description

@@ -50,14 +50,14 @@ is true.

- + Definition

Defined in the header file boost/range/algorithm/count_if.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/equal.html b/doc/html/range/reference/algorithms/non_mutating/equal.html index d70859b..0c6e838 100644 --- a/doc/html/range/reference/algorithms/non_mutating/equal.html +++ b/doc/html/range/reference/algorithms/non_mutating/equal.html @@ -27,7 +27,7 @@ equal

- + Prototype

@@ -52,7 +52,7 @@

- + Description

@@ -70,14 +70,14 @@ considered equal in the predicate version if pred(x,y) is true.

- + Definition

Defined in the header file boost/range/algorithm/equal.hpp

- + Requirements

@@ -138,7 +138,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/equal_range.html b/doc/html/range/reference/algorithms/non_mutating/equal_range.html index 0594865..77c6b73 100644 --- a/doc/html/range/reference/algorithms/non_mutating/equal_range.html +++ b/doc/html/range/reference/algorithms/non_mutating/equal_range.html @@ -27,7 +27,7 @@ equal_range

- + Prototype

@@ -70,7 +70,7 @@

- + Description

@@ -84,14 +84,14 @@ is determined by pred.

- + Definition

Defined in the header file boost/range/algorithm/equal_range.hpp

- + Requirements

@@ -142,7 +142,7 @@

- + Precondition:

@@ -154,7 +154,7 @@ is ordered in ascending order according to pred.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/find.html b/doc/html/range/reference/algorithms/non_mutating/find.html index 76086a8..5528c72 100644 --- a/doc/html/range/reference/algorithms/non_mutating/find.html +++ b/doc/html/range/reference/algorithms/non_mutating/find.html @@ -27,7 +27,7 @@ find

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -59,14 +59,14 @@ same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/find.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/find_end.html b/doc/html/range/reference/algorithms/non_mutating/find_end.html index 95cb212..f214649 100644 --- a/doc/html/range/reference/algorithms/non_mutating/find_end.html +++ b/doc/html/range/reference/algorithms/non_mutating/find_end.html @@ -27,7 +27,7 @@ find_end

- + Prototype

@@ -65,7 +65,7 @@

- + Description

@@ -80,14 +80,14 @@ same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/find_end.hpp

- + Requirements

@@ -147,7 +147,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/find_first_of.html b/doc/html/range/reference/algorithms/non_mutating/find_first_of.html index 2751651..7d316e6 100644 --- a/doc/html/range/reference/algorithms/non_mutating/find_first_of.html +++ b/doc/html/range/reference/algorithms/non_mutating/find_first_of.html @@ -27,7 +27,7 @@ find_first_of

- + Prototype

@@ -65,7 +65,7 @@

- + Description

@@ -85,14 +85,14 @@ same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/find_first_of.hpp

- + Requirements

@@ -146,7 +146,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/find_if.html b/doc/html/range/reference/algorithms/non_mutating/find_if.html index 18d83c4..276904a 100644 --- a/doc/html/range/reference/algorithms/non_mutating/find_if.html +++ b/doc/html/range/reference/algorithms/non_mutating/find_if.html @@ -27,7 +27,7 @@ find_if

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -63,14 +63,14 @@ defines found in the same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/find_if.hpp

- + Requirements
- + Precondition:

@@ -97,7 +97,7 @@ rng, *i is in the domain of UnaryPredicate.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/for_each.html b/doc/html/range/reference/algorithms/non_mutating/for_each.html index b7f8384..7634734 100644 --- a/doc/html/range/reference/algorithms/non_mutating/for_each.html +++ b/doc/html/range/reference/algorithms/non_mutating/for_each.html @@ -27,7 +27,7 @@ for_each

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -58,14 +58,14 @@ fun(x).

- + Definition

Defined in the header file boost/range/algorithm/for_each.hpp

- + Requirements
- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html b/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html index 25ace1b..d02c38c 100644 --- a/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html +++ b/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html @@ -27,7 +27,7 @@ lexicographical_compare

- + Prototype

@@ -52,7 +52,7 @@

- + Description

@@ -72,14 +72,14 @@ predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/lexicographical_compare.hpp

- + Requirements

@@ -144,7 +144,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/lower_bound.html b/doc/html/range/reference/algorithms/non_mutating/lower_bound.html index b4419b1..6143c5d 100644 --- a/doc/html/range/reference/algorithms/non_mutating/lower_bound.html +++ b/doc/html/range/reference/algorithms/non_mutating/lower_bound.html @@ -27,7 +27,7 @@ lower_bound

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -71,14 +71,14 @@ same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/lower_bound.hpp

- + Requirements

@@ -129,7 +129,7 @@

- + Precondition:

@@ -147,7 +147,7 @@ order according to pred.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/max_element.html b/doc/html/range/reference/algorithms/non_mutating/max_element.html index 7202da9..a1189a7 100644 --- a/doc/html/range/reference/algorithms/non_mutating/max_element.html +++ b/doc/html/range/reference/algorithms/non_mutating/max_element.html @@ -27,7 +27,7 @@ max_element

- + Prototype

@@ -83,7 +83,7 @@

- + Description

@@ -97,14 +97,14 @@ same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/max_element.hpp

- + Requirements

@@ -141,7 +141,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/min_element.html b/doc/html/range/reference/algorithms/non_mutating/min_element.html index 50260c5..405e71e 100644 --- a/doc/html/range/reference/algorithms/non_mutating/min_element.html +++ b/doc/html/range/reference/algorithms/non_mutating/min_element.html @@ -27,7 +27,7 @@ min_element

- + Prototype

@@ -83,7 +83,7 @@

- + Description

@@ -97,14 +97,14 @@ same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/min_element.hpp

- + Requirements

@@ -141,7 +141,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/mismatch.html b/doc/html/range/reference/algorithms/non_mutating/mismatch.html index 30f2acd..7863b41 100644 --- a/doc/html/range/reference/algorithms/non_mutating/mismatch.html +++ b/doc/html/range/reference/algorithms/non_mutating/mismatch.html @@ -27,7 +27,7 @@ mismatch

- + Prototype

@@ -105,7 +105,7 @@

- + Description

@@ -117,14 +117,14 @@ Equality is determined by operator== for non-predicate versions of mismatch, and by satisfying pred in the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/mismatch.hpp

- + Requirements

@@ -185,14 +185,14 @@

- + Precondition:

distance(rng2) >= distance(rng1)

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/search.html b/doc/html/range/reference/algorithms/non_mutating/search.html index 6e68396..3e6b199 100644 --- a/doc/html/range/reference/algorithms/non_mutating/search.html +++ b/doc/html/range/reference/algorithms/non_mutating/search.html @@ -27,7 +27,7 @@ search

- + Prototype

@@ -95,7 +95,7 @@

- + Description

@@ -114,14 +114,14 @@ same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/search.hpp

- + Requirements

@@ -182,7 +182,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/search_n.html b/doc/html/range/reference/algorithms/non_mutating/search_n.html index aa1e621..15baa4b 100644 --- a/doc/html/range/reference/algorithms/non_mutating/search_n.html +++ b/doc/html/range/reference/algorithms/non_mutating/search_n.html @@ -27,7 +27,7 @@ search_n

- + Prototype

@@ -54,7 +54,7 @@

- + Description

@@ -63,14 +63,14 @@ and by a predicate when one is supplied.

- + Definition

Defined in the header file boost/range/algorithm/search_n.hpp

- + Requirements

@@ -124,7 +124,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/non_mutating/upper_bound.html b/doc/html/range/reference/algorithms/non_mutating/upper_bound.html index 6e75ef7..79a990d 100644 --- a/doc/html/range/reference/algorithms/non_mutating/upper_bound.html +++ b/doc/html/range/reference/algorithms/non_mutating/upper_bound.html @@ -27,7 +27,7 @@ upper_bound

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -70,14 +70,14 @@ same manner as the returned iterator described above.

- + Definition

Defined in the header file boost/range/algorithm/upper_bound.hpp

- + Requirements

@@ -128,7 +128,7 @@

- + Precondition:

@@ -146,7 +146,7 @@ order according to pred.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/numeric/accumulate.html b/doc/html/range/reference/algorithms/numeric/accumulate.html index e3accc8..a2bef01 100644 --- a/doc/html/range/reference/algorithms/numeric/accumulate.html +++ b/doc/html/range/reference/algorithms/numeric/accumulate.html @@ -27,7 +27,7 @@ accumulate

- + Prototype

@@ -52,7 +52,7 @@

- + Description

@@ -63,18 +63,18 @@ The return value is the resultant value of the above algorithm.

- + Definition

Defined in the header file boost/range/numeric.hpp

- + Requirements
- + For the first version
@@ -99,7 +99,7 @@
- + For the second version
@@ -133,7 +133,7 @@
- + Complexity

diff --git a/doc/html/range/reference/algorithms/numeric/adjacent_difference.html b/doc/html/range/reference/algorithms/numeric/adjacent_difference.html index b5b3f49..9b1369f 100644 --- a/doc/html/range/reference/algorithms/numeric/adjacent_difference.html +++ b/doc/html/range/reference/algorithms/numeric/adjacent_difference.html @@ -27,7 +27,7 @@ adjacent_difference

- + Prototype

@@ -54,7 +54,7 @@

- + Description

@@ -68,18 +68,18 @@ instead of operator-().

- + Definition

Defined in the header file boost/range/numeric.hpp

- + Requirements
- + For the first version
@@ -110,7 +110,7 @@
- + For the second version
@@ -145,7 +145,7 @@
- + Precondition:

@@ -153,7 +153,7 @@ + distance(rng)) is a valid range.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/numeric/inner_product.html b/doc/html/range/reference/algorithms/numeric/inner_product.html index 9567a89..99c847a 100644 --- a/doc/html/range/reference/algorithms/numeric/inner_product.html +++ b/doc/html/range/reference/algorithms/numeric/inner_product.html @@ -27,7 +27,7 @@ inner_product

- + Prototype

@@ -53,7 +53,7 @@

- + Description

@@ -66,18 +66,18 @@ algorithm please see inner_product.

- + Definition

Defined in the header file boost/range/numeric.hpp

- + Requirements
- + For the first version
@@ -112,7 +112,7 @@
- + For the second version
@@ -161,14 +161,14 @@
- + Precondition:

distance(rng2) >= distance(rng1) is a valid range.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/numeric/partial_sum.html b/doc/html/range/reference/algorithms/numeric/partial_sum.html index 50fa44b..01bf416 100644 --- a/doc/html/range/reference/algorithms/numeric/partial_sum.html +++ b/doc/html/range/reference/algorithms/numeric/partial_sum.html @@ -27,7 +27,7 @@ partial_sum

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -57,18 +57,18 @@ in the same manner as std::partial_sum(boost::begin(rng), boost::end(rng), out_it). See partial_sum.

- + Definition

Defined in the header file boost/range/numeric.hpp

- + Requirements
- + For the first version
@@ -98,7 +98,7 @@
- + For the second version
@@ -127,7 +127,7 @@
- + Precondition:

@@ -135,7 +135,7 @@ + distance(rng)) is a valid range.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/permutation/next_permutation.html b/doc/html/range/reference/algorithms/permutation/next_permutation.html index 78626e7..440ba3f 100644 --- a/doc/html/range/reference/algorithms/permutation/next_permutation.html +++ b/doc/html/range/reference/algorithms/permutation/next_permutation.html @@ -27,7 +27,7 @@ next_permutation

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -66,14 +66,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/permutation.hpp

- + Requirements

@@ -124,7 +124,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/permutation/prev_permutation.html b/doc/html/range/reference/algorithms/permutation/prev_permutation.html index c87dadb..a7ecfa6 100644 --- a/doc/html/range/reference/algorithms/permutation/prev_permutation.html +++ b/doc/html/range/reference/algorithms/permutation/prev_permutation.html @@ -27,7 +27,7 @@ prev_permutation

- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -66,14 +66,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/permutation.hpp

- + Requirements

@@ -124,7 +124,7 @@

- + Complexity

diff --git a/doc/html/range/reference/algorithms/set/includes.html b/doc/html/range/reference/algorithms/set/includes.html index 9090779..51c2b73 100644 --- a/doc/html/range/reference/algorithms/set/includes.html +++ b/doc/html/range/reference/algorithms/set/includes.html @@ -27,7 +27,7 @@ includes

- + Prototype

@@ -47,7 +47,7 @@

- + Description

@@ -59,14 +59,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/set_algorithm.hpp

- + Requirements

@@ -144,7 +144,7 @@

- + Precondition:

@@ -162,7 +162,7 @@ according to pred.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/set/set_difference.html b/doc/html/range/reference/algorithms/set/set_difference.html index 6aa68d8..a54c8f6 100644 --- a/doc/html/range/reference/algorithms/set/set_difference.html +++ b/doc/html/range/reference/algorithms/set/set_difference.html @@ -27,7 +27,7 @@ set_difference

- + Prototype

@@ -56,7 +56,7 @@

- + Description

@@ -70,14 +70,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/set_algorithm.hpp

- + Requirements

@@ -163,7 +163,7 @@

- + Precondition:

@@ -181,7 +181,7 @@ according to pred.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/set/set_intersection.html b/doc/html/range/reference/algorithms/set/set_intersection.html index 0c4705e..b8ee14f 100644 --- a/doc/html/range/reference/algorithms/set/set_intersection.html +++ b/doc/html/range/reference/algorithms/set/set_intersection.html @@ -27,7 +27,7 @@ set_intersection

- + Prototype

@@ -56,7 +56,7 @@

- + Description

@@ -70,14 +70,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/set_algorithm.hpp

- + Requirements

@@ -163,7 +163,7 @@

- + Precondition:

@@ -181,7 +181,7 @@ according to pred.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/set/set_symmetric_difference.html b/doc/html/range/reference/algorithms/set/set_symmetric_difference.html index aab6c38..00311d3 100644 --- a/doc/html/range/reference/algorithms/set/set_symmetric_difference.html +++ b/doc/html/range/reference/algorithms/set/set_symmetric_difference.html @@ -27,7 +27,7 @@ set_symmetric_difference

- + Prototype

@@ -58,7 +58,7 @@

- + Description

@@ -74,14 +74,14 @@ the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/set_algorithm.hpp

- + Requirements

@@ -167,7 +167,7 @@

- + Precondition:

@@ -185,7 +185,7 @@ according to pred.

- + Complexity

diff --git a/doc/html/range/reference/algorithms/set/set_union.html b/doc/html/range/reference/algorithms/set/set_union.html index f89ab11..14bd666 100644 --- a/doc/html/range/reference/algorithms/set/set_union.html +++ b/doc/html/range/reference/algorithms/set/set_union.html @@ -27,7 +27,7 @@ set_union

- + Prototype

@@ -56,7 +56,7 @@

- + Description

@@ -69,14 +69,14 @@ in the predicate versions.

- + Definition

Defined in the header file boost/range/algorithm/set_algorithm.hpp

- + Requirements

@@ -162,7 +162,7 @@

- + Precondition:

@@ -180,7 +180,7 @@ according to pred.

- + Complexity

diff --git a/doc/html/range/reference/concept_implementation/semantics.html b/doc/html/range/reference/concept_implementation/semantics.html index 10f57ad..007a58d 100644 --- a/doc/html/range/reference/concept_implementation/semantics.html +++ b/doc/html/range/reference/concept_implementation/semantics.html @@ -31,7 +31,7 @@

Functions
- + notation
diff --git a/doc/html/range/reference/concept_implementation/semantics/functions.html b/doc/html/range/reference/concept_implementation/semantics/functions.html index 318dec3..55f8a17 100644 --- a/doc/html/range/reference/concept_implementation/semantics/functions.html +++ b/doc/html/range/reference/concept_implementation/semantics/functions.html @@ -168,27 +168,10 @@

- The size - of the - range with - complexity O(1). For - RandomAccessRanges this is - achieved via - boost::end(x) - - boost::begin(x). For - other traversal - categories range_calculate_size(x) is - returned. - Note that - unless range_calculate_size(x) has - been implemented - by the - user as - an extension - then the - Argument Dependent - Lookup will - return x.size() + range_calculate_size(x) which by default is boost::end(x) + - boost::begin(x). Users may supply alternative + implementations by implementing range_calculate_size(x) so that it will be found via + ADL

diff --git a/doc/html/range/reference/ranges/counting_range.html b/doc/html/range/reference/ranges/counting_range.html index 01355b0..c6e6d60 100644 --- a/doc/html/range/reference/ranges/counting_range.html +++ b/doc/html/range/reference/ranges/counting_range.html @@ -27,7 +27,7 @@ counting_range
- + Prototype

@@ -48,7 +48,7 @@

- + Description

@@ -58,14 +58,14 @@ (from Boost.Iterator).

- + Definition

Defined in header file boost/range/counting_range.hpp

- + Requirements
  1. diff --git a/doc/html/range/reference/ranges/irange.html b/doc/html/range/reference/ranges/irange.html index 291a416..ca18ddd 100644 --- a/doc/html/range/reference/ranges/irange.html +++ b/doc/html/range/reference/ranges/irange.html @@ -27,7 +27,7 @@ irange
- + Prototype

@@ -44,7 +44,7 @@

- + Description

@@ -58,14 +58,14 @@ parameters denoted a half-open range.

- + Definition

Defined in the header file boost/range/irange.hpp

- + Requirements
    @@ -80,7 +80,7 @@
- + Complexity

diff --git a/doc/html/range/reference/ranges/istream_range.html b/doc/html/range/reference/ranges/istream_range.html index 3e704f2..dea3138 100644 --- a/doc/html/range/reference/ranges/istream_range.html +++ b/doc/html/range/reference/ranges/istream_range.html @@ -27,7 +27,7 @@ istream_range

- + Prototype

@@ -40,7 +40,7 @@

- + Description

@@ -49,7 +49,7 @@ wrapping a std::istream_iterator.

- + Definition

diff --git a/doc/html/range/reference/utilities/iterator_range.html b/doc/html/range/reference/utilities/iterator_range.html index b2b1923..4e555e0 100644 --- a/doc/html/range/reference/utilities/iterator_range.html +++ b/doc/html/range/reference/utilities/iterator_range.html @@ -48,7 +48,7 @@ type.

- + Synopsis

@@ -188,7 +188,7 @@ iterators from the same container.

- + Details member functions
@@ -207,7 +207,7 @@ == r.end();

- + Details functions
diff --git a/doc/html/range/reference/utilities/join.html b/doc/html/range/reference/utilities/join.html index 8fc0d82..a8032ca 100644 --- a/doc/html/range/reference/utilities/join.html +++ b/doc/html/range/reference/utilities/join.html @@ -39,7 +39,7 @@ check if the end of a range has been reached internally during traversal.

- + Synposis

@@ -108,7 +108,7 @@

- + Example

diff --git a/doc/html/range/reference/utilities/sub_range.html b/doc/html/range/reference/utilities/sub_range.html index e82e7f5..ec320e9 100644 --- a/doc/html/range/reference/utilities/sub_range.html +++ b/doc/html/range/reference/utilities/sub_range.html @@ -35,7 +35,7 @@ is.

- + Synopsis

diff --git a/doc/reference/adaptors/strided.qbk b/doc/reference/adaptors/strided.qbk index 0f57222..e219a83 100644 --- a/doc/reference/adaptors/strided.qbk +++ b/doc/reference/adaptors/strided.qbk @@ -11,7 +11,7 @@ [[Function] [`boost::adaptors::stride(rng, n)`]] ] -* [*Precondition:] `0 <= n` and `boost::size(rng)` is a valid expression. +* [*Precondition:] `0 <= n`. * [*Returns:] A new range based on `rng` where traversal is performed in steps of `n`. * [*Range Category:] __single_pass_range__ * [*Returned Range Category:] The range category of `rng`. diff --git a/doc/reference/semantics.qbk b/doc/reference/semantics.qbk index 6276e9d..335ab90 100644 --- a/doc/reference/semantics.qbk +++ b/doc/reference/semantics.qbk @@ -21,7 +21,7 @@ [table [[Expression] [Return type] [Complexity]] [ - [`range_iterator::type`] + [`range_iterator::type`] [`` T::iterator P::first_type @@ -129,7 +129,7 @@ [ [`size(x)`] [`range_difference::type`] - [`The size of the range with complexity O(1). For RandomAccessRanges this is achieved via boost::end(x) - boost::begin(x). For other traversal categories range_calculate_size(x) is returned. Note that unless range_calculate_size(x) has been implemented by the user as an extension then the Argument Dependent Lookup will return x.size()`] + [`range_calculate_size(x)` which by default is `boost::end(x) - boost::begin(x)`. Users may supply alternative implementations by implementing `range_calculate_size(x)` so that it will be found via ADL] [constant time] ] [ diff --git a/include/boost/range/adaptor/strided.hpp b/include/boost/range/adaptor/strided.hpp index 9bbd8ca..a391eef 100755 --- a/include/boost/range/adaptor/strided.hpp +++ b/include/boost/range/adaptor/strided.hpp @@ -15,157 +15,292 @@ #include #include #include - #include namespace boost { namespace range_detail { - - template + // strided_iterator for wrapping a forward traversal iterator + template class strided_iterator : public iterator_adaptor< - strided_iterator + strided_iterator , BaseIterator + , use_default + , boost::forward_traversal_tag > { - friend class iterator_core_access; + friend class ::boost::iterator_core_access; - typedef iterator_adaptor, BaseIterator> super_t; + typedef iterator_adaptor< + strided_iterator + , BaseIterator + , use_default + , boost::forward_traversal_tag + > super_t; public: typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::difference_type difference_type; + typedef BaseIterator base_iterator; strided_iterator() - : m_stride(), m_offset(), m_max_offset() + : m_last() + , m_stride() { } - explicit strided_iterator(BaseIterator base_it, - difference_type stride, - difference_type offset, - difference_type max_offset) - : super_t(base_it) + strided_iterator(base_iterator first, base_iterator it, base_iterator last, difference_type stride) + : super_t(it) + , m_last(last) , m_stride(stride) - , m_offset(offset) - , m_max_offset(max_offset) { } template - strided_iterator(const strided_iterator& other, - BOOST_DEDUCED_TYPENAME enable_if_convertible::type* = 0) + strided_iterator(const strided_iterator& other, + BOOST_DEDUCED_TYPENAME enable_if_convertible::type* = 0) : super_t(other) - , m_stride(other.m_stride) - , m_offset(other.m_offset) - , m_max_offset(other.m_max_offset) + , m_last(other.base_end()) + , m_stride(other.get_stride()) { } - strided_iterator& - operator=(const strided_iterator& other) - { - super_t::operator=(other); - m_stride = other.m_stride; - m_offset = other.m_offset; - m_max_offset = other.m_max_offset; - return *this; - } + base_iterator base_end() const { return m_last; } + difference_type get_stride() const { return m_stride; } + private: void increment() { - m_offset += m_stride; - if (m_offset <= m_max_offset) - std::advance(this->base_reference(), m_stride); + base_iterator& it = this->base_reference(); + for (difference_type i = 0; (it != m_last) && (i < m_stride); ++i) + ++it; + } + + base_iterator m_last; + difference_type m_stride; + }; + + // strided_iterator for wrapping a bidirectional iterator + template + class strided_iterator + : public iterator_adaptor< + strided_iterator + , BaseIterator + , use_default + , bidirectional_traversal_tag + > + { + friend class ::boost::iterator_core_access; + + typedef iterator_adaptor< + strided_iterator + , BaseIterator + , use_default + , bidirectional_traversal_tag + > super_t; + public: + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::difference_type difference_type; + typedef BaseIterator base_iterator; + + strided_iterator() + : m_first() + , m_last() + , m_stride() + { + } + + strided_iterator(base_iterator first, base_iterator it, base_iterator last, difference_type stride) + : super_t(it) + , m_first(first) + , m_last(last) + , m_stride(stride) + { + } + + template + strided_iterator(const strided_iterator& other, + BOOST_DEDUCED_TYPENAME enable_if_convertible::type* = 0) + : super_t(other.base()) + , m_first(other.base_begin()) + , m_last(other.base_end()) + , m_stride(other.get_stride()) + { + } + + base_iterator base_begin() const { return m_first; } + base_iterator base_end() const { return m_last; } + difference_type get_stride() const { return m_stride; } + + private: + void increment() + { + base_iterator& it = this->base_reference(); + for (difference_type i = 0; (it != m_last) && (i < m_stride); ++i) + ++it; } void decrement() { - m_offset -= m_stride; - if (m_offset >= 0) - std::advance(this->base_reference(), -m_stride); + base_iterator& it = this->base_reference(); + for (difference_type i = 0; (it != m_first) && (i < m_stride); ++i) + --it; } - void advance(difference_type n) - { - n *= m_stride; - m_offset += n; + base_iterator m_first; + base_iterator m_last; + difference_type m_stride; + }; - if (m_offset >= 0 && m_offset <= m_max_offset) - std::advance(this->base_reference(), n); + // strided_iterator implementation for wrapping a random access iterator + template + class strided_iterator + : public iterator_adaptor< + strided_iterator + , BaseIterator + , use_default + , random_access_traversal_tag + > + { + friend class ::boost::iterator_core_access; + + typedef iterator_adaptor< + strided_iterator + , BaseIterator + , use_default + , random_access_traversal_tag + > super_t; + public: + typedef BOOST_DEDUCED_TYPENAME super_t::difference_type difference_type; + typedef BaseIterator base_iterator; + + strided_iterator() + : m_first() + , m_last() + , m_stride() + { + } + + strided_iterator(BaseIterator first, BaseIterator it, BaseIterator last, difference_type stride) + : super_t(it) + , m_first(first) + , m_last(last) + , m_stride(stride) + { } template - bool equal(const strided_iterator& other, - BOOST_DEDUCED_TYPENAME enable_if_convertible::type* = 0) const + strided_iterator(const strided_iterator& other, + BOOST_DEDUCED_TYPENAME enable_if_convertible::type* = 0) + : super_t(other.base()) + , m_first(other.base_begin()) + , m_last(other.base_end()) + , m_stride(other.get_stride()) { - return m_offset == other.m_offset; } - difference_type - distance_to(const strided_iterator& other) const + base_iterator base_begin() const { return m_first; } + base_iterator base_end() const { return m_last; } + difference_type get_stride() const { return m_stride; } + + private: + void increment() { - return (other.m_offset - m_offset) / m_stride; + std::cout << "increment() - before = " << (this->base_reference() - m_first); + base_iterator& it = this->base_reference(); + if ((m_last - it) > m_stride) + it += m_stride; + else + it = m_last; + + std::cout << " after = " << (this->base_reference() - m_first) << std::endl; + } + + void decrement() + { + base_iterator& it = this->base_reference(); + if ((it - m_first) > m_stride) + it -= m_stride; + else + it = m_first; + } + + void advance(difference_type offset) + { + base_iterator& it = this->base_reference(); + offset *= m_stride; + if (offset >= 0) + { + if ((m_last - it) > offset) + it += offset; + else + it = m_last; + } + else + { + if ((m_first - it) > offset) + it += offset; + else + it = m_first; + } + } + + template + difference_type distance_to(const strided_iterator& other, + BOOST_DEDUCED_TYPENAME enable_if_convertible::type* = 0) const + { + if (other.base() >= this->base()) + return (other.base() - this->base() + (m_stride - 1)) / m_stride; + return (other.base() - this->base() - (m_stride - 1)) / m_stride; + } + + bool equal(const strided_iterator& other) const + { + return other.base() == this->base(); } private: + base_iterator m_first; + base_iterator m_last; difference_type m_stride; - difference_type m_offset; - difference_type m_max_offset; }; template inline - strided_iterator - make_strided_iterator( - const BaseIterator& first, - Difference stride, - typename std::iterator_traits::difference_type offset, - typename std::iterator_traits::difference_type max_offset - ) + strided_iterator::type> + make_strided_iterator(BaseIterator first, BaseIterator it, + BaseIterator last, Difference stride) { BOOST_ASSERT( stride >= 0 ); - BOOST_ASSERT( (stride == 0) || (offset % stride == 0) ); - BOOST_ASSERT( (stride == 0) || (max_offset % stride == 0) ); - BOOST_ASSERT( offset <= max_offset ); - return strided_iterator(first, stride, offset, max_offset); + typedef BOOST_DEDUCED_TYPENAME iterator_traversal::type traversal_tag; + return strided_iterator(first, it, last, stride); } - template< class Rng > + template< class Rng + , class Category = BOOST_DEDUCED_TYPENAME iterator_traversal< + BOOST_DEDUCED_TYPENAME range_iterator::type + >::type + > class strided_range - : public iterator_range::type> > + : public iterator_range< + range_detail::strided_iterator< + BOOST_DEDUCED_TYPENAME range_iterator::type, + Category + > + > { - typedef range_detail::strided_iterator::type> iter_type; + typedef range_detail::strided_iterator< + BOOST_DEDUCED_TYPENAME range_iterator::type, + Category + > iter_type; typedef iterator_range super_t; public: template strided_range(Difference stride, Rng& rng) - : super_t(make_super(stride, rng)) + : super_t(make_strided_iterator(boost::begin(rng), boost::begin(rng), boost::end(rng), stride), + make_strided_iterator(boost::begin(rng), boost::end(rng), boost::end(rng), stride)) { BOOST_ASSERT( stride >= 0 ); } - - private: - template - static super_t make_super(const Difference stride, Rng& rng) - { - const Difference count = boost::size(rng); - const Difference max_count = max_offset(count, stride); - return super_t(make_strided_iterator(boost::begin(rng), stride, 0, max_count), - make_strided_iterator(boost::end(rng), stride, max_count, max_count)); - } - - template - static Difference max_offset(Difference sz, const Stride stride) - { - if (stride > 0) - { - sz += stride - 1; - sz /= stride; - sz *= stride; - } - return sz; - } }; template diff --git a/include/boost/range/size.hpp b/include/boost/range/size.hpp index 2636905..4b4eebe 100644 --- a/include/boost/range/size.hpp +++ b/include/boost/range/size.hpp @@ -15,7 +15,7 @@ # pragma once #endif -#include +#include #include #include #include @@ -25,44 +25,25 @@ namespace boost { namespace range_detail { - template< class SinglePassRange > + template inline BOOST_DEDUCED_TYPENAME range_difference::type - size_impl(const SinglePassRange& rng, boost::single_pass_traversal_tag) - { - typedef BOOST_DEDUCED_TYPENAME range_difference::type diff_t; - - // A compilation error here will often indicate that an algorithm - // is attempting to use boost::size(rng) for a range that is not a - // model of the RandomAccessRange Concept and does not have a - // member size() function. - // The solution to this issue is to add a range_calculate_size() - // function for the range type that will be found via ADL. - return static_cast(rng.size()); - } - - template< class SinglePassRange > - inline BOOST_DEDUCED_TYPENAME range_difference::type - size_impl(const SinglePassRange& rng, boost::random_access_traversal_tag) + range_calculate_size(const SinglePassRange& rng) { BOOST_ASSERT( (boost::end(rng) - boost::begin(rng)) >= 0 && "reachability invariant broken!" ); return boost::end(rng) - boost::begin(rng); } - } // namespace range_detail - - template - inline BOOST_DEDUCED_TYPENAME range_difference::type - range_calculate_size(const SinglePassRange& rng) - { - typedef BOOST_DEDUCED_TYPENAME range_iterator::type iter_t; - typedef BOOST_DEDUCED_TYPENAME iterator_traversal::type traversal_tag; - return range_detail::size_impl(rng, traversal_tag()); } template inline BOOST_DEDUCED_TYPENAME range_difference::type size(const SinglePassRange& rng) { +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ + !BOOST_WORKAROUND(__GNUC__, < 3) \ + /**/ + using namespace range_detail; +#endif return range_calculate_size(rng); } diff --git a/test/adaptor_test/strided.cpp b/test/adaptor_test/strided.cpp index 04f1f21..91beb81 100644 --- a/test/adaptor_test/strided.cpp +++ b/test/adaptor_test/strided.cpp @@ -128,10 +128,10 @@ namespace boost typedef boost::strided_range strided_range_t; strided_range_t rng( boost::adaptors::stride(c, 0) ); - typedef typename boost::range_iterator::type iter_t; + typedef BOOST_DEDUCED_TYPENAME boost::range_iterator::type iter_t; - iter_t first(boost::begin(c), 0, 0, boost::size(c)); - iter_t last(boost::end(c), 0, boost::size(c), boost::size(c)); + iter_t first(boost::begin(c), boost::begin(c), boost::end(c), 0); + iter_t last(boost::begin(c), boost::end(c), boost::end(c), 0); iter_t it = first; for (int i = 0; i < 10; ++i, ++it) @@ -206,16 +206,6 @@ namespace boost ++(this->base_reference()); } - bool equal(const strided_mock_iterator& other) const - { - return this->base() == other.base(); - } - - BOOST_DEDUCED_TYPENAME super_t::reference dereference() const - { - return *(this->base()); - } - friend class boost::iterator_core_access; }; diff --git a/test/algorithm_test/count_if.cpp b/test/algorithm_test/count_if.cpp index a2e8983..e028741 100644 --- a/test/algorithm_test/count_if.cpp +++ b/test/algorithm_test/count_if.cpp @@ -33,6 +33,7 @@ namespace boost using namespace boost::assign; typedef equal_to_x pred_t; + typedef BOOST_DEDUCED_TYPENAME std::iterator_traits::difference_type diff_t; Container cont; const Container& cref_cont = cont; @@ -72,9 +73,9 @@ namespace boost BOOST_CHECK_EQUAL( 0u, boost::count_if(cref_cont, false_predicate()) ); BOOST_CHECK_EQUAL( 0u, boost::count_if(boost::make_iterator_range(cont), false_predicate()) ); - BOOST_CHECK_EQUAL( boost::size(cont), boost::count_if(cont, true_predicate()) ); - BOOST_CHECK_EQUAL( boost::size(cont), boost::count_if(cref_cont, true_predicate()) ); - BOOST_CHECK_EQUAL( boost::size(cont), boost::count_if(boost::make_iterator_range(cont), true_predicate()) ); + BOOST_CHECK_EQUAL( static_cast(cont.size()), boost::count_if(cont, true_predicate()) ); + BOOST_CHECK_EQUAL( static_cast(cont.size()), boost::count_if(cref_cont, true_predicate()) ); + BOOST_CHECK_EQUAL( static_cast(cont.size()), boost::count_if(boost::make_iterator_range(cont), true_predicate()) ); } void test_count_if() diff --git a/test/extension_size.cpp b/test/extension_size.cpp index 988e557..856f87d 100644 --- a/test/extension_size.cpp +++ b/test/extension_size.cpp @@ -24,24 +24,24 @@ namespace boost_range_extension_size_test { - class FooWithoutMemberSize + class FooWithoutSize { typedef std::list impl_t; typedef impl_t::const_iterator const_iterator; typedef impl_t::iterator iterator; public: - friend inline const_iterator range_begin(const FooWithoutMemberSize& obj) { return obj.m_impl.begin(); } - friend inline iterator range_begin(FooWithoutMemberSize& obj) { return obj.m_impl.begin(); } - friend inline const_iterator range_end(const FooWithoutMemberSize& obj) { return obj.m_impl.end(); } - friend inline iterator range_end(FooWithoutMemberSize& obj){ return obj.m_impl.end(); } + friend inline const_iterator range_begin(const FooWithoutSize& obj) { return obj.m_impl.begin(); } + friend inline iterator range_begin(FooWithoutSize& obj) { return obj.m_impl.begin(); } + friend inline const_iterator range_end(const FooWithoutSize& obj) { return obj.m_impl.end(); } + friend inline iterator range_end(FooWithoutSize& obj){ return obj.m_impl.end(); } private: impl_t m_impl; }; - boost::range_difference >::type - inline range_calculate_size(const FooWithoutMemberSize& rng) + inline boost::range_difference >::type + range_calculate_size(const FooWithoutSize& rng) { return 2u; } @@ -49,12 +49,12 @@ namespace boost_range_extension_size_test namespace boost { - template<> struct range_iterator + template<> struct range_iterator { typedef std::list::const_iterator type; }; - template<> struct range_iterator< ::boost_range_extension_size_test::FooWithoutMemberSize > + template<> struct range_iterator< ::boost_range_extension_size_test::FooWithoutSize> { typedef std::list::iterator type; }; @@ -63,13 +63,6 @@ namespace boost namespace { -void check_size_works_with_less_than_random_access() -{ - std::list container; - container.push_back(1); - BOOST_CHECK_EQUAL( boost::size(container), 1u ); -} - void check_size_works_with_random_access() { std::vector container; @@ -77,28 +70,9 @@ void check_size_works_with_random_access() BOOST_CHECK_EQUAL( boost::size(container), 1u ); } -class FooWithMemberSize -{ -public: - typedef std::list impl_t; - typedef impl_t::const_iterator const_iterator; - typedef impl_t::iterator iterator; - typedef impl_t::value_type value_type; - - std::size_t size() const { return 1u; } - const_iterator begin() const { return m_impl.begin(); } - iterator begin() { return m_impl.begin(); } - const_iterator end() const { return m_impl.end(); } - iterator end() { return m_impl.end(); } - -private: - std::list m_impl; -}; - void check_extension_size() { - BOOST_CHECK_EQUAL( boost::size(FooWithMemberSize()), 1u ); - BOOST_CHECK_EQUAL( boost::size(boost_range_extension_size_test::FooWithoutMemberSize()), 2u ); + BOOST_CHECK_EQUAL( boost::size(boost_range_extension_size_test::FooWithoutSize()), 2u ); } } // anonymous namespace @@ -109,14 +83,8 @@ test_suite* init_unit_test_suite( int argc, char* argv[] ) { test_suite* test = BOOST_TEST_SUITE( "Range Test Suite" ); - test->add( BOOST_TEST_CASE( &check_size_works_with_less_than_random_access )); test->add( BOOST_TEST_CASE( &check_size_works_with_random_access )); test->add( BOOST_TEST_CASE( &check_extension_size ) ); return test; } - - - - -