Brian Silverman | 598d029 | 2018-08-04 23:56:47 -0700 | [diff] [blame^] | 1 | [/============================================================================== |
| 2 | Copyright (C) 2003-2010 Thorsten Ottosen, Neil Groves |
| 3 | |
| 4 | Use, modification and distribution is subject to the Boost Software |
| 5 | License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at |
| 6 | http://www.boost.org/LICENSE_1_0.txt |
| 7 | ==============================================================================/] |
| 8 | [library Range |
| 9 | [quickbook 1.5] |
| 10 | [version 2.0] |
| 11 | [authors [Ottosen, Thorsten], [Groves, Neil]] |
| 12 | [copyright 2003-2010 Thorsten Ottosen, Neil Groves] |
| 13 | [purpose Half-open range library] |
| 14 | [license |
| 15 | Distributed under the Boost Software License, Version 1.0. |
| 16 | (See accompanying file LICENSE_1_0.txt or copy at |
| 17 | [@http://www.boost.org/LICENSE_1_0.txt]) |
| 18 | ] |
| 19 | ] |
| 20 | |
| 21 | [/ Converted to Quickbook format by Darren Garvey, 2007] |
| 22 | |
| 23 | [def __note__ [$images/note.png]] |
| 24 | [def __alert__ [$images/alert.png]] |
| 25 | [def __tip__ [$images/tip.png]] |
| 26 | [def __caution__ [$images/caution.png]] |
| 27 | |
| 28 | [def __boost_range_home__ [link range Boost.Range]] |
| 29 | [def __ranges__ [link range.concepts Ranges]] |
| 30 | [def __range_concepts__ [link range.concepts Range concepts]] |
| 31 | [def __forward_range__ [link range.concepts.forward_range Forward Range]] |
| 32 | [def __single_pass_range__ [link range.concepts.single_pass_range Single Pass Range]] |
| 33 | [def __bidirectional_range__ [link range.concepts.bidirectional_range Bidirectional Range]] |
| 34 | [def __random_access_range__ [link range.concepts.random_access_range Random Access Range]] |
| 35 | |
| 36 | [def __iterator_range__ [link range.reference.utilities.iterator_range `iterator_range`]] |
| 37 | [def __sub_range__ [link range.reference.utilities.sub_range `sub_range`]] |
| 38 | [def __minimal_interface__ [link range.reference.extending minimal interface]] |
| 39 | [def __range_result_iterator__ [link range.reference.concept_implementation.semantics.metafunctions `range_result_iterator`]] |
| 40 | [def __extending_for_udts__ [link range.reference.extending Extending the library for UDTs]] |
| 41 | [def __implementation_of_metafunctions__ [link range.reference.concept_implementation.semantics.metafunctions Implementation of metafunctions]] |
| 42 | [def __implementation_of_functions__ [link range.reference.concept_implementation.semantics.functions Implementation of functions]] |
| 43 | |
| 44 | [def __range_value__ [link range.reference.concept_implementation.semantics.metafunctions `range_value`]] |
| 45 | [def __range_iterator__ [link range.reference.concept_implementation.semantics.metafunctions `range_iterator`]] |
| 46 | [def __range_difference__ [link range.reference.concept_implementation.semantics.metafunctions `range_difference`]] |
| 47 | [def __range_pointer__ [link range.reference.concept_implementation.semantics.metafunctions `range_pointer`]] |
| 48 | [def __range_category__ [link range.reference.concept_implementation.semantics.metafunctions `range_category`]] |
| 49 | [def __range_reverse_iterator__ [link range.reference.concept_implementation.semantics.metafunctions `range_reverse_iterator`]] |
| 50 | [def __begin__ [link range.reference.concept_implementation.semantics.functions `begin`]] |
| 51 | [def __const_begin__ [link range.reference.concept_implementation.semantics.functions `const_begin`]] |
| 52 | [def __end__ [link range.reference.concept_implementation.semantics.functions `end`]] |
| 53 | [def __const_end__ [link range.reference.concept_implementation.semantics.functions `const_end`]] |
| 54 | [def __empty__ [link range.reference.concept_implementation.semantics.functions `empty`]] |
| 55 | [def __distance__ [link range.reference.concept_implementation.semantics.functions `distance`]] |
| 56 | [def __size__ [link range.reference.concept_implementation.semantics.functions `size`]] |
| 57 | [def __rbegin__ [link range.reference.concept_implementation.semantics.functions `rbegin`]] |
| 58 | [def __const_rbegin__ [link range.reference.concept_implementation.semantics.functions `const_rbegin`]] |
| 59 | [def __rend__ [link range.reference.concept_implementation.semantics.functions `rend`]] |
| 60 | [def __const_rend__ [link range.reference.concept_implementation.semantics.functions `const_rend`]] |
| 61 | [def __as_array__ [link range.reference.concept_implementation.semantics.functions `as_array`]] |
| 62 | [def __as_literal__ [link range.reference.concept_implementation.semantics.functions `as_literal`]] |
| 63 | [def __counting_range__ [link range.reference.ranges.counting_range `counting_range`]] |
| 64 | [def __irange__ [link range.reference.ranges.irange `irange`]] |
| 65 | [def __istream_range__ [link range.reference.ranges.istream_range `istream_range`]] |
| 66 | [def __combine__ [link range.reference.utilities.combine `combine`]] |
| 67 | [def __join__ [link range.reference.utilities.join `join`]] |
| 68 | |
| 69 | [def __range_adaptors__ [link range.reference.adaptors Range adaptors]] |
| 70 | [def __range_adaptors_adjacent_filtered__ [link range.reference.adaptors.reference.adjacent_filtered adjacent_filtered]] |
| 71 | [def __range_adaptors_copied__ [link range.reference.adaptors.reference.copied copied]] |
| 72 | [def __range_adaptors_filtered__ [link range.reference.adaptors.reference.filtered filtered]] |
| 73 | [def __range_adaptors_formatted__ [link.range.reference.adaptors.reference.formatted formatted]] |
| 74 | [def __range_adaptors_indexed__ [link range.reference.adaptors.reference.indexed indexed]] |
| 75 | [def __range_adaptors_indirected__ [link range.reference.adaptors.reference.indirected indirected]] |
| 76 | [def __range_adaptors_map_keys__ [link range.reference.adaptors.reference.map_keys map_keys]] |
| 77 | [def __range_adaptors_map_values__ [link range.reference.adaptors.reference.map_values map_values]] |
| 78 | [def __range_adaptors_replaced__ [link range.reference.adaptors.reference.replaced replaced]] |
| 79 | [def __range_adaptors_replaced_if__ [link range.reference.adaptors.reference.replaced_if replaced_if]] |
| 80 | [def __range_adaptors_reversed__ [link range.reference.adaptors.reference.reversed reversed]] |
| 81 | [def __range_adaptors_sliced__ [link range.reference.adaptors.reference.sliced sliced]] |
| 82 | [def __range_adaptors_strided__ [link range.reference.adaptors.reference.strided strided]] |
| 83 | [def __range_adaptors_type_erased__ [link range.reference.adaptors.reference.type_erased type_erased]] |
| 84 | [def __range_adaptors_tokenized__ [link range.reference.adaptors.reference.tokenized tokenized]] |
| 85 | [def __range_adaptors_transformed__ [link range.reference.adaptors.reference.transformed transformed]] |
| 86 | [def __range_adaptors_uniqued__ [link range.reference.adaptors.reference.uniqued uniqued]] |
| 87 | |
| 88 | |
| 89 | [def __range_algorithms__ [link range.reference.algorithms Range algorithms]] |
| 90 | [def __range_algorithms_adjacent_find__ [link range.reference.algorithms.non_mutating.adjacent_find adjacent_find]] |
| 91 | [def __range_algorithms_binary_search__ [link range.reference.algorithms.non_mutating.binary_search binary_search]] |
| 92 | [def __range_algorithms_count__ [link range.reference.algorithms.non_mutating.count count]] |
| 93 | [def __range_algorithms_count_if__ [link range.reference.algorithms.non_mutating.count_if count_if]] |
| 94 | [def __range_algorithms_equal__ [link range.reference.algorithms.non_mutating.equal equal]] |
| 95 | [def __range_algorithms_equal_range__ [link range.reference.algorithms.non_mutating.equal_range equal_range]] |
| 96 | [def __range_algorithms_for_each__ [link range.reference.algorithms.non_mutating.for_each for_each]] |
| 97 | [def __range_algorithms_find__ [link range.reference.algorithms.non_mutating.find find]] |
| 98 | [def __range_algorithms_find_end__ [link range.reference.algorithms.non_mutating.find_end find_end]] |
| 99 | [def __range_algorithms_find_first_of__ [link range.reference.algorithms.non_mutating.find_first_of find_first_of]] |
| 100 | [def __range_algorithms_find_if__ [link range.reference.algorithms.non_mutating.find_if find_if]] |
| 101 | [def __range_algorithms_lexicographical_compare__ [link range.reference.algorithms.non_mutating.lexicographical_compare lexicographical_compare]] |
| 102 | [def __range_algorithms_lower_bound__ [link range.reference.algorithms.non_mutating.lower_bound lower_bound]] |
| 103 | [def __range_algorithms_max_element__ [link range.reference.algorithms.non_mutating.max_element max_element]] |
| 104 | [def __range_algorithms_min_element__ [link range.reference.algorithms.non_mutating.min_element min_element]] |
| 105 | [def __range_algorithms_mismatch__ [link range.reference.algorithms.non_mutating.mismatch mismatch]] |
| 106 | [def __range_algorithms_search__ [link range.reference.algorithms.non_mutating.search search]] |
| 107 | [def __range_algorithms_search_n__ [link range.reference.algorithms.non_mutating.search_n search_n]] |
| 108 | [def __range_algorithms_upper_bound__ [link range.reference.algorithms.non_mutating.upper_bound upper_bound]] |
| 109 | |
| 110 | [def __range_algorithms_copy__ [link range.reference.algorithms.mutating.copy copy]] |
| 111 | [def __range_algorithms_copy_backward__ [link range.reference.algorithms.mutating.copy_backward copy_backward]] |
| 112 | [def __range_algorithms_fill__ [link range.reference.algorithms.mutating.fill fill]] |
| 113 | [def __range_algorithms_fill_n__ [link range.reference.algorithms.mutating.fill_n fill_n]] |
| 114 | [def __range_algorithms_generate__ [link range.reference.algorithms.mutating.generate generate]] |
| 115 | [def __range_algorithms_inplace_merge__ [link range.reference.algorithms.mutating.inplace_merge inplace_merge]] |
| 116 | [def __range_algorithms_merge__ [link range.reference.algorithms.mutating.merge merge]] |
| 117 | [def __range_algorithms_nth_element__ [link range.reference.algorithms.mutating.nth_element nth_element]] |
| 118 | [def __range_algorithms_partial_sort__ [link range.reference.algorithms.mutating.partial_sort partial_sort]] |
| 119 | [def __range_algorithms_partition__ [link range.reference.algorithms.mutating.partition partition]] |
| 120 | [def __range_algorithms_random_shuffle__ [link range.reference.algorithms.mutating.random_shuffle random_shuffle]] |
| 121 | [def __range_algorithms_remove__ [link range.reference.algorithms.mutating.remove remove]] |
| 122 | [def __range_algorithms_remove_copy__ [link range.reference.algorithms.mutating.remove_copy remove_copy]] |
| 123 | [def __range_algorithms_remove_copy_if__ [link range.reference.algorithms.mutating.remove_copy_if remove_copy_if]] |
| 124 | [def __range_algorithms_remove_if__ [link range.reference.algorithms.mutating.remove_if remove_if]] |
| 125 | [def __range_algorithms_replace__ [link range.reference.algorithms.mutating.replace replace]] |
| 126 | [def __range_algorithms_replace_copy__ [link range.reference.algorithms.mutating.replace_copy replace_copy]] |
| 127 | [def __range_algorithms_replace_copy_if__ [link range.reference.algorithms.mutating.replace_copy_if replace_copy_if]] |
| 128 | [def __range_algorithms_replace_if__ [link range.reference.algorithms.mutating.replace_if replace_if]] |
| 129 | [def __range_algorithms_reverse__ [link range.reference.algorithms.mutating.reverse reverse]] |
| 130 | [def __range_algorithms_reverse_copy__ [link range.reference.algorithms.mutating.reverse_copy reverse_copy]] |
| 131 | [def __range_algorithms_rotate__ [link range.reference.algorithms.mutating.rotate rotate]] |
| 132 | [def __range_algorithms_rotate_copy__ [link range.reference.algorithms.mutating.rotate_copy rotate_copy]] |
| 133 | [def __range_algorithms_sort__ [link range.reference.algorithms.mutating.sort sort]] |
| 134 | [def __range_algorithms_stable_partition__ [link range.reference.algorithms.mutating.stable_partition stable_partition]] |
| 135 | [def __range_algorithms_stable_sort__ [link range.reference.algorithms.mutating.stable_sort stable_sort]] |
| 136 | [def __range_algorithms_swap_ranges__ [link range.reference.algorithms.mutating.swap_ranges swap_ranges]] |
| 137 | [def __range_algorithms_transform__ [link range.reference.algorithms.mutating.transform transform]] |
| 138 | [def __range_algorithms_unique__ [link range.reference.algorithms.mutating.unique unique]] |
| 139 | [def __range_algorithms_unique_copy__ [link range.reference.algorithms.mutating.unique_copy unique_copy]] |
| 140 | |
| 141 | [def __range_algorithms_includes__ [link range.reference.algorithms.set.includes includes]] |
| 142 | [def __range_algorithms_set_union__ [link range.reference.algorithms.set.set_union set_union]] |
| 143 | [def __range_algorithms_set_intersection__ [link range.reference.algorithms.set.set_intersection set_intersection]] |
| 144 | [def __range_algorithms_set_difference__ [link range.reference.algorithms.set.set_difference set_difference]] |
| 145 | [def __range_algorithms_set_symmetric_difference__ [link range.reference.algorithms.set.set_symmetric_difference set_symmetric_difference]] |
| 146 | |
| 147 | [def __range_algorithms_push_heap__ [link range.reference.algorithms.heap.push_heap push_heap]] |
| 148 | [def __range_algorithms_pop_heap__ [link range.reference.algorithms.heap.pop_heap pop_heap]] |
| 149 | [def __range_algorithms_make_heap__ [link range.reference.algorithms.heap.make_heap make_heap]] |
| 150 | [def __range_algorithms_sort_heap__ [link range.reference.algorithms.heap.sort_heap sort_heap]] |
| 151 | |
| 152 | [def __range_algorithms_next_permutation__ [link range.reference.algorithms.permutation.next_permutation next_permutation]] |
| 153 | [def __range_algorithms_prev_permutation__ [link range.reference.algorithms.permutation.prev_permutation prev_permutation]] |
| 154 | |
| 155 | [def __range_algorithm_ext_copy_n__ [link range.reference.algorithms.new.copy_n copy_n]] |
| 156 | [def __range_algorithm_ext_erase__ [link range.reference.algorithms.new.erase erase]] |
| 157 | [def __range_algorithm_ext_for_each__ [link range.reference.algorithms.new.for_each for_each]] |
| 158 | [def __range_algorithm_ext_insert__ [link range.reference.algorithms.new.insert insert]] |
| 159 | [def __range_algorithm_ext_iota__ [link range.reference.algorithms.new.iota iota]] |
| 160 | [def __range_algorithm_ext_is_sorted__ [link range.reference.algorithms.new.is_sorted is_sorted]] |
| 161 | [def __range_algorithm_ext_overwrite__ [link range.reference.algorithms.new.overwrite overwrite]] |
| 162 | [def __range_algorithm_ext_push_back__ [link range.reference.algorithms.new.push_back push_back]] |
| 163 | [def __range_algorithm_ext_push_front__ [link range.reference.algorithms.new.push_front push_front]] |
| 164 | |
| 165 | [def __single_pass_iterator__ [@boost:/libs/iterator/doc/new-iter-concepts.html#singls-pass-iterators-lib-single-pass-iterators Single Pass Iterator]] |
| 166 | [def __forward_traversal_iterator__ [@boost:/libs/iterator/doc/new-iter-concepts.html#forward-traversal-iterators-lib-forward-traversal-iterators Forward Traversal Iterator]] |
| 167 | [def __bidirectional_traversal_iterator__ [@boost:/libs/iterator/doc/new-iter-concepts.html#bidirectional-traversal-iterators-lib-bidirectional-traversal-iterators Bidirectional Traversal Iterator]] |
| 168 | [def __random_access_traversal_iterator__ [@boost:/libs/iterator/doc/new-iter-concepts.html#random-access-traversal-iterators-lib-random-access-traversal-iterators Random Access Traversal Iterator]] |
| 169 | [def __new_style_iterators__ [@boost:/libs/iterator/doc/new-iter-concepts.html new style iterators]] |
| 170 | [def __iterator_concepts__ [@boost:/libs/iterator/doc/iterator_concepts.html Iterator concepts]] |
| 171 | |
| 172 | [def __container__ [@http://www.sgi.com/Technology/STL/Container.html Container]] |
| 173 | [def __metafunctions__ [@boost:/libs/mpl/doc/refmanual/metafunction.html metafunctions]] |
| 174 | [def __concept_check__ [@boost:/libs/concept_check/index.html Boost Concept Check library]] |
| 175 | [def __boost_array__ [@boost:/libs/array/index.html boost::array]] |
| 176 | [def __the_forwarding_problem__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm The Forwarding Problem]] |
| 177 | |
| 178 | [def __sgi_inner_product__ [@http://www.sgi.com/tech/stl/inner_product.html inner_product]] |
| 179 | [def __sgi_partial_sum__ [@http://www.sgi.com/tech/stl/partial_sum.html partial_sum]] |
| 180 | [def __type_erasure_article__ [@http://www.artima.com/cppsource/type_erasure.html type erasure article]] |
| 181 | |
| 182 | Boost.Range is a collection of concepts and utilities, range-based algorithms, |
| 183 | as well as range adaptors that allow for efficient and expressive code. |
| 184 | |
| 185 | Using Boost.Range inplace of the standard library alternatives results in more |
| 186 | readable code and in many cases greater efficiency. |
| 187 | |
| 188 | [include introduction.qbk] |
| 189 | [include concepts.qbk] |
| 190 | [include reference.qbk] |
| 191 | [include style.qbk] |
| 192 | [include headers.qbk] |
| 193 | [include examples.qbk] |
| 194 | [include mfc_atl.qbk] |
| 195 | [include upgrade.qbk] |
| 196 | [include portability.qbk] |
| 197 | [include faq.qbk] |
| 198 | [include history_ack.qbk] |
| 199 | |