Revision: 430 Author: alai04 Date: Wed Sep 1 05:47:13 2010 Log: 升级至1.44.0,第7批,libs/目录q-r子目录 http://code.google.com/p/boost-doc-zh/source/detail?r=430 Added: /trunk/libs/random/test/test_random_device.cpp /trunk/libs/range/test/algorithm_test/copy_n.cpp /trunk/libs/range/test/algorithm_test/remove_copy.cpp /trunk/libs/range/test/algorithm_test/remove_copy_if.cpp /trunk/libs/range/test/algorithm_test/replace_copy.cpp /trunk/libs/range/test/algorithm_test/replace_copy_if.cpp /trunk/libs/range/test/algorithm_test/reverse_copy.cpp /trunk/libs/range/test/algorithm_test/rotate_copy.cpp /trunk/libs/range/test/algorithm_test/search_n.cpp /trunk/libs/range/test/algorithm_test/swap_ranges.cpp /trunk/libs/range/test/algorithm_test/unique_copy.cpp /trunk/libs/range/test/replace_copy.cpp /trunk/libs/range/test/test_function/true_predicate.hpp Deleted: /trunk/libs/range/doc/html/quickbook_HTML.manifest /trunk/libs/range/doc/html/standalone_HTML.manifest /trunk/libs/range/doc/reference/adaptors/adjacent_filtered.html /trunk/libs/range/doc/reference/adaptors/copied.html /trunk/libs/range/doc/reference/adaptors/filtered.html /trunk/libs/range/doc/reference/adaptors/indexed.html /trunk/libs/range/doc/reference/adaptors/indirected.html /trunk/libs/range/doc/reference/adaptors/map_keys.html /trunk/libs/range/doc/reference/adaptors/map_values.html /trunk/libs/range/doc/reference/adaptors/replaced.html /trunk/libs/range/doc/reference/adaptors/replaced_if.html /trunk/libs/range/doc/reference/adaptors/reversed.html /trunk/libs/range/doc/reference/adaptors/sliced.html /trunk/libs/range/doc/reference/adaptors/strided.html /trunk/libs/range/doc/reference/adaptors/tokenized.html /trunk/libs/range/doc/reference/adaptors/transformed.html /trunk/libs/range/doc/reference/adaptors/uniqued.html Modified: /trunk/libs/random/src/random_device.cpp /trunk/libs/random/test/Jamfile.v2 /trunk/libs/range/doc/Jamfile.v2 /trunk/libs/range/doc/concepts.qbk /trunk/libs/range/doc/history_ack.qbk /trunk/libs/range/doc/html/index.html /trunk/libs/range/doc/html/range/concepts/bidirectional_range.html /trunk/libs/range/doc/html/range/concepts/concept_checking.html /trunk/libs/range/doc/html/range/concepts/forward_range.html /trunk/libs/range/doc/html/range/concepts/overview.html /trunk/libs/range/doc/html/range/concepts/random_access_range.html /trunk/libs/range/doc/html/range/concepts/single_pass_range.html /trunk/libs/range/doc/html/range/concepts.html /trunk/libs/range/doc/html/range/examples.html /trunk/libs/range/doc/html/range/faq.html /trunk/libs/range/doc/html/range/history_ack.html /trunk/libs/range/doc/html/range/introduction.html /trunk/libs/range/doc/html/range/library_headers/adaptors.html /trunk/libs/range/doc/html/range/library_headers/algorithm.html /trunk/libs/range/doc/html/range/library_headers/algorithm_extensions.html /trunk/libs/range/doc/html/range/library_headers/general.html /trunk/libs/range/doc/html/range/library_headers.html /trunk/libs/range/doc/html/range/mfc_atl/atl_ranges.html /trunk/libs/range/doc/html/range/mfc_atl/const_ranges.html /trunk/libs/range/doc/html/range/mfc_atl/mfc_ranges.html /trunk/libs/range/doc/html/range/mfc_atl/references.html /trunk/libs/range/doc/html/range/mfc_atl/requirements.html /trunk/libs/range/doc/html/range/mfc_atl.html /trunk/libs/range/doc/html/range/portability.html/trunk/libs/range/doc/html/range/reference/adaptors/general_requirements.html
/trunk/libs/range/doc/html/range/reference/adaptors/introduction.html/trunk/libs/range/doc/html/range/reference/adaptors/reference/adjacent_filtered.html
/trunk/libs/range/doc/html/range/reference/adaptors/reference/copied.html /trunk/libs/range/doc/html/range/reference/adaptors/reference/filtered.html /trunk/libs/range/doc/html/range/reference/adaptors/reference/indexed.html/trunk/libs/range/doc/html/range/reference/adaptors/reference/indirected.html
/trunk/libs/range/doc/html/range/reference/adaptors/reference/map_keys.html/trunk/libs/range/doc/html/range/reference/adaptors/reference/map_values.html
/trunk/libs/range/doc/html/range/reference/adaptors/reference/replaced.html/trunk/libs/range/doc/html/range/reference/adaptors/reference/replaced_if.html
/trunk/libs/range/doc/html/range/reference/adaptors/reference/reversed.html /trunk/libs/range/doc/html/range/reference/adaptors/reference/sliced.html /trunk/libs/range/doc/html/range/reference/adaptors/reference/strided.html/trunk/libs/range/doc/html/range/reference/adaptors/reference/tokenized.html /trunk/libs/range/doc/html/range/reference/adaptors/reference/transformed.html
/trunk/libs/range/doc/html/range/reference/adaptors/reference/uniqued.html /trunk/libs/range/doc/html/range/reference/adaptors/reference.html /trunk/libs/range/doc/html/range/reference/adaptors.html /trunk/libs/range/doc/html/range/reference/algorithms/heap/make_heap.html /trunk/libs/range/doc/html/range/reference/algorithms/heap/pop_heap.html /trunk/libs/range/doc/html/range/reference/algorithms/heap/push_heap.html /trunk/libs/range/doc/html/range/reference/algorithms/heap/sort_heap.html /trunk/libs/range/doc/html/range/reference/algorithms/heap.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/copy_backward.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/fill_n.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/generate.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/inplace_merge.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating/merge.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/nth_element.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/partial_sort.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/partition.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/random_shuffle.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_copy_if.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/remove_if.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_copy_if.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/replace_if.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/reverse_copy.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/rotate_copy.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating/sort.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_partition.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/stable_sort.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/swap_ranges.html /trunk/libs/range/doc/html/range/reference/algorithms/mutating/transform.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique.html/trunk/libs/range/doc/html/range/reference/algorithms/mutating/unique_copy.html
/trunk/libs/range/doc/html/range/reference/algorithms/mutating.html /trunk/libs/range/doc/html/range/reference/algorithms/new/copy_n.html /trunk/libs/range/doc/html/range/reference/algorithms/new/erase.html /trunk/libs/range/doc/html/range/reference/algorithms/new/for_each.html /trunk/libs/range/doc/html/range/reference/algorithms/new/insert.html /trunk/libs/range/doc/html/range/reference/algorithms/new/iota.html /trunk/libs/range/doc/html/range/reference/algorithms/new/is_sorted.html /trunk/libs/range/doc/html/range/reference/algorithms/new/overwrite.html /trunk/libs/range/doc/html/range/reference/algorithms/new/push_back.html /trunk/libs/range/doc/html/range/reference/algorithms/new/push_front.html /trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase.html/trunk/libs/range/doc/html/range/reference/algorithms/new/remove_erase_if.html
/trunk/libs/range/doc/html/range/reference/algorithms/new.html/trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/adjacent_find.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/binary_search.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/count_if.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/equal_range.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_end.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_first_of.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/find_if.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/for_each.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lexicographical_compare.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/lower_bound.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/max_element.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/min_element.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/mismatch.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/search_n.html /trunk/libs/range/doc/html/range/reference/algorithms/non_mutating/upper_bound.html
/trunk/libs/range/doc/html/range/reference/algorithms/non_mutating.html/trunk/libs/range/doc/html/range/reference/algorithms/numeric/accumulate.html /trunk/libs/range/doc/html/range/reference/algorithms/numeric/adjacent_difference.html /trunk/libs/range/doc/html/range/reference/algorithms/numeric/inner_product.html /trunk/libs/range/doc/html/range/reference/algorithms/numeric/partial_sum.html
/trunk/libs/range/doc/html/range/reference/algorithms/numeric.html/trunk/libs/range/doc/html/range/reference/algorithms/permutation/next_permutation.html /trunk/libs/range/doc/html/range/reference/algorithms/permutation/prev_permutation.html
/trunk/libs/range/doc/html/range/reference/algorithms/permutation.html/trunk/libs/range/doc/html/range/reference/algorithms/range_algorithm_introduction.html
/trunk/libs/range/doc/html/range/reference/algorithms/set/includes.html/trunk/libs/range/doc/html/range/reference/algorithms/set/set_difference.html /trunk/libs/range/doc/html/range/reference/algorithms/set/set_intersection.html /trunk/libs/range/doc/html/range/reference/algorithms/set/set_symmetric_difference.html
/trunk/libs/range/doc/html/range/reference/algorithms/set/set_union.html /trunk/libs/range/doc/html/range/reference/algorithms/set.html /trunk/libs/range/doc/html/range/reference/algorithms.html/trunk/libs/range/doc/html/range/reference/concept_implementation/semantics/functions.html /trunk/libs/range/doc/html/range/reference/concept_implementation/semantics/metafunctions.html /trunk/libs/range/doc/html/range/reference/concept_implementation/semantics.html /trunk/libs/range/doc/html/range/reference/concept_implementation/synopsis.html
/trunk/libs/range/doc/html/range/reference/concept_implementation.html /trunk/libs/range/doc/html/range/reference/extending/method_1.html /trunk/libs/range/doc/html/range/reference/extending/method_2.html/trunk/libs/range/doc/html/range/reference/extending/method_3/method_3_1.html /trunk/libs/range/doc/html/range/reference/extending/method_3/method_3_2.html
/trunk/libs/range/doc/html/range/reference/extending/method_3.html /trunk/libs/range/doc/html/range/reference/extending.html /trunk/libs/range/doc/html/range/reference/overview.html /trunk/libs/range/doc/html/range/reference/ranges/counting_range.html /trunk/libs/range/doc/html/range/reference/ranges/irange.html /trunk/libs/range/doc/html/range/reference/ranges/istream_range.html /trunk/libs/range/doc/html/range/reference/ranges.html /trunk/libs/range/doc/html/range/reference/utilities/iterator_range.html /trunk/libs/range/doc/html/range/reference/utilities/join.html /trunk/libs/range/doc/html/range/reference/utilities/sub_range.html /trunk/libs/range/doc/html/range/reference/utilities.html /trunk/libs/range/doc/html/range/reference.html /trunk/libs/range/doc/html/range/style_guide.html /trunk/libs/range/doc/html/range/upgrade/upgrade_from_1_34.html /trunk/libs/range/doc/html/range/upgrade/upgrade_from_1_42.html /trunk/libs/range/doc/html/range/upgrade.html /trunk/libs/range/doc/introduction.qbk /trunk/libs/range/test/Jamfile.v2 /trunk/libs/range/test/adaptor_test/map.cpp /trunk/libs/range/test/algorithm_test/adjacent_find.cpp /trunk/libs/range/test/algorithm_test/binary_search.cpp /trunk/libs/range/test/algorithm_test/copy.cpp /trunk/libs/range/test/algorithm_test/copy_backward.cpp /trunk/libs/range/test/algorithm_test/count.cpp /trunk/libs/range/test/algorithm_test/count_if.cpp /trunk/libs/range/test/algorithm_test/equal.cpp /trunk/libs/range/test/algorithm_test/equal_range.cpp /trunk/libs/range/test/algorithm_test/fill.cpp /trunk/libs/range/test/algorithm_test/find.cpp /trunk/libs/range/test/algorithm_test/find_end.cpp /trunk/libs/range/test/algorithm_test/find_first_of.cpp /trunk/libs/range/test/algorithm_test/find_if.cpp /trunk/libs/range/test/algorithm_test/for_each.cpp /trunk/libs/range/test/algorithm_test/generate.cpp /trunk/libs/range/test/algorithm_test/heap.cpp /trunk/libs/range/test/algorithm_test/includes.cpp /trunk/libs/range/test/algorithm_test/inplace_merge.cpp /trunk/libs/range/test/algorithm_test/lexicographical_compare.cpp /trunk/libs/range/test/algorithm_test/lower_bound.cpp /trunk/libs/range/test/algorithm_test/max_element.cpp /trunk/libs/range/test/algorithm_test/merge.cpp /trunk/libs/range/test/algorithm_test/min_element.cpp /trunk/libs/range/test/algorithm_test/mismatch.cpp /trunk/libs/range/test/algorithm_test/next_permutation.cpp /trunk/libs/range/test/algorithm_test/nth_element.cpp /trunk/libs/range/test/algorithm_test/partial_sort.cpp /trunk/libs/range/test/algorithm_test/partition.cpp /trunk/libs/range/test/algorithm_test/prev_permutation.cpp /trunk/libs/range/test/algorithm_test/random_shuffle.cpp /trunk/libs/range/test/algorithm_test/remove.cpp /trunk/libs/range/test/algorithm_test/remove_if.cpp /trunk/libs/range/test/algorithm_test/replace.cpp /trunk/libs/range/test/algorithm_test/replace_if.cpp /trunk/libs/range/test/algorithm_test/reverse.cpp /trunk/libs/range/test/algorithm_test/rotate.cpp /trunk/libs/range/test/algorithm_test/search.cpp /trunk/libs/range/test/algorithm_test/set_difference.cpp /trunk/libs/range/test/algorithm_test/set_intersection.cpp /trunk/libs/range/test/algorithm_test/set_symmetric_difference.cpp /trunk/libs/range/test/algorithm_test/set_union.cpp /trunk/libs/range/test/algorithm_test/sort.cpp /trunk/libs/range/test/algorithm_test/stable_partition.cpp /trunk/libs/range/test/algorithm_test/stable_sort.cpp /trunk/libs/range/test/algorithm_test/transform.cpp /trunk/libs/range/test/algorithm_test/unique.cpp /trunk/libs/range/test/algorithm_test/upper_bound.cpp /trunk/libs/range/test/extension_mechanism.cpp /trunk/libs/range/test/string.cpp /trunk/libs/regex/doc/Jamfile.v2 /trunk/libs/regex/doc/history.qbk/trunk/libs/regex/doc/html/boost_regex/background_information/acknowledgements.html
/trunk/libs/regex/doc/html/boost_regex/background_information/examples.html /trunk/libs/regex/doc/html/boost_regex/background_information/faq.html /trunk/libs/regex/doc/html/boost_regex/background_information/futher.html /trunk/libs/regex/doc/html/boost_regex/background_information/headers.html /trunk/libs/regex/doc/html/boost_regex/background_information/history.html /trunk/libs/regex/doc/html/boost_regex/background_information/locale.html/trunk/libs/regex/doc/html/boost_regex/background_information/performance.html
/trunk/libs/regex/doc/html/boost_regex/background_information/redist.html/trunk/libs/regex/doc/html/boost_regex/background_information/standards.html /trunk/libs/regex/doc/html/boost_regex/background_information/thread_safety.html
/trunk/libs/regex/doc/html/boost_regex/background_information.html /trunk/libs/regex/doc/html/boost_regex/captures.html /trunk/libs/regex/doc/html/boost_regex/configuration/algorithm.html /trunk/libs/regex/doc/html/boost_regex/configuration/compiler.html /trunk/libs/regex/doc/html/boost_regex/configuration/linkage.html /trunk/libs/regex/doc/html/boost_regex/configuration/locale.html /trunk/libs/regex/doc/html/boost_regex/configuration/tuning.html /trunk/libs/regex/doc/html/boost_regex/configuration.html /trunk/libs/regex/doc/html/boost_regex/format/boost_format_syntax.html /trunk/libs/regex/doc/html/boost_regex/format/perl_format.html /trunk/libs/regex/doc/html/boost_regex/format/sed_format.html /trunk/libs/regex/doc/html/boost_regex/format.html /trunk/libs/regex/doc/html/boost_regex/install.html /trunk/libs/regex/doc/html/boost_regex/introduction_and_overview.html /trunk/libs/regex/doc/html/boost_regex/partial_matches.html /trunk/libs/regex/doc/html/boost_regex/ref/bad_expression.html /trunk/libs/regex/doc/html/boost_regex/ref/basic_regex.html /trunk/libs/regex/doc/html/boost_regex/ref/concepts/charT_concept.html /trunk/libs/regex/doc/html/boost_regex/ref/concepts/iterator_concepts.html /trunk/libs/regex/doc/html/boost_regex/ref/concepts/traits_concept.html /trunk/libs/regex/doc/html/boost_regex/ref/concepts.html/trunk/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html /trunk/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html /trunk/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html /trunk/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
/trunk/libs/regex/doc/html/boost_regex/ref/deprecated_interfaces.html /trunk/libs/regex/doc/html/boost_regex/ref/error_type.html /trunk/libs/regex/doc/html/boost_regex/ref/match_flag_type.html /trunk/libs/regex/doc/html/boost_regex/ref/match_results.html /trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/intro.html/trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html /trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html /trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
/trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu.html/trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html /trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html /trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html /trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html /trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
/trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html /trunk/libs/regex/doc/html/boost_regex/ref/non_std_strings.html /trunk/libs/regex/doc/html/boost_regex/ref/posix.html /trunk/libs/regex/doc/html/boost_regex/ref/regex_iterator.html /trunk/libs/regex/doc/html/boost_regex/ref/regex_match.html /trunk/libs/regex/doc/html/boost_regex/ref/regex_replace.html /trunk/libs/regex/doc/html/boost_regex/ref/regex_search.html /trunk/libs/regex/doc/html/boost_regex/ref/regex_token_iterator.html /trunk/libs/regex/doc/html/boost_regex/ref/regex_traits.html /trunk/libs/regex/doc/html/boost_regex/ref/sub_match.html/trunk/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html /trunk/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html /trunk/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html /trunk/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html /trunk/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html /trunk/libs/regex/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
/trunk/libs/regex/doc/html/boost_regex/ref/syntax_option_type.html /trunk/libs/regex/doc/html/boost_regex/ref.html /trunk/libs/regex/doc/html/boost_regex/syntax/basic_extended.html /trunk/libs/regex/doc/html/boost_regex/syntax/basic_syntax.html/trunk/libs/regex/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html /trunk/libs/regex/doc/html/boost_regex/syntax/character_classes/std_char_clases.html
/trunk/libs/regex/doc/html/boost_regex/syntax/character_classes.html /trunk/libs/regex/doc/html/boost_regex/syntax/collating_names/digraphs.html/trunk/libs/regex/doc/html/boost_regex/syntax/collating_names/named_unicode.html /trunk/libs/regex/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
/trunk/libs/regex/doc/html/boost_regex/syntax/collating_names.html /trunk/libs/regex/doc/html/boost_regex/syntax/leftmost_longest_rule.html /trunk/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html /trunk/libs/regex/doc/html/boost_regex/syntax.html /trunk/libs/regex/doc/html/boost_regex/unicode.html /trunk/libs/regex/doc/html/index.html /trunk/libs/regex/doc/match_result.qbk /trunk/libs/regex/doc/regex_replace.qbk /trunk/libs/regex/doc/standards.qbk /trunk/libs/regex/doc/syntax_perl.qbk /trunk/libs/regex/example/Jamfile.v2 /trunk/libs/regex/example/grep/grep.cpp /trunk/libs/regex/example/snippets/icu_example.cpp /trunk/libs/regex/example/snippets/partial_regex_grep.cpp /trunk/libs/regex/example/snippets/partial_regex_iterate.cpp /trunk/libs/regex/example/snippets/regex_grep_example_1.cpp /trunk/libs/regex/example/snippets/regex_grep_example_2.cpp /trunk/libs/regex/example/snippets/regex_grep_example_3.cpp /trunk/libs/regex/example/snippets/regex_iterator_example.cpp /trunk/libs/regex/example/snippets/regex_merge_example.cpp /trunk/libs/regex/example/snippets/regex_replace_example.cpp /trunk/libs/regex/example/snippets/regex_search_example.cpp /trunk/libs/regex/example/snippets/regex_split_example_2.cpp /trunk/libs/regex/example/snippets/regex_token_iterator_eg_2.cpp /trunk/libs/regex/performance/command_line.cpp /trunk/libs/regex/test/Jamfile.v2 /trunk/libs/regex/test/c_compiler_checks/posix_api_check.c /trunk/libs/regex/test/c_compiler_checks/wide_posix_api_check.c /trunk/libs/regex/test/regress/main.cpp /trunk/libs/regex/test/regress/test_perl_ex.cpp /trunk/libs/regex/test/unicode/unicode_iterator_test.cpp ======================================= --- /dev/null +++ /trunk/libs/random/test/test_random_device.cpp Wed Sep 1 05:47:13 2010 @@ -0,0 +1,26 @@ +/* boost random_test.cpp various tests + * + * Copyright (c) 2010 Steven Watanabe + * Distributed under the Boost Software License, Version 1.0. (See + * accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENCE_1_0.txt) + * + * $Id: test_random_device.cpp 62347 2010-05-31 16:44:36Z steven_watanabe $ + */ + +#include <boost/nondet_random.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/included/test_exec_monitor.hpp> + +int test_main(int argc, char** argv) { + boost::random_device rng; + double entropy = rng.entropy(); + BOOST_CHECK_GE(entropy, 0); + for(int i = 0; i < 100; ++i) { + boost::random_device::result_type val = rng(); + BOOST_CHECK_GE(val, (rng.min)()); + BOOST_CHECK_LE(val, (rng.max)()); + } + return 0; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/copy_n.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,70 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/copy_n.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/range/iterator.hpp> +#include <algorithm> +#include <list> +#include <set> +#include <vector> + +namespace +{ + template< class Container > + void test_copy_n_impl() + { + Container source; + typedef BOOST_DEDUCED_TYPENAME Container::value_type value_t; + + std::vector<value_t> target; + target.resize(source.size()); ++ typedef BOOST_DEDUCED_TYPENAME range_iterator< std::vector<value_t> >::type iterator_t;
+ iterator_t it = boost::copy(source, target.begin()); + + BOOST_CHECK( it == target.end() ); + + BOOST_CHECK_EQUAL_COLLECTIONS( + target.begin(), target.end(), + source.begin(), source.end() + ); ++ it = boost::copy(boost::make_iterator_range(source), target.begin());
+ + BOOST_CHECK( it == target.end() ); + + BOOST_CHECK_EQUAL_COLLECTIONS(target.begin(), target.end(), + source.begin(), source.end()); + } + + void test_copy_n() + { + test_copy_n_impl< std::vector<int> >(); + test_copy_n_impl< std::list<int> >(); + test_copy_n_impl< std::set<int> >(); + test_copy_n_impl< std::multiset<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.copy_n" ); + + test->add( BOOST_TEST_CASE( &::test_copy_n ) ); + + return test; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/remove_copy.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,107 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/remove_copy.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/bind.hpp> +#include <algorithm> +#include <functional> +#include <list> +#include <numeric> +#include <deque> +#include <vector> + +namespace +{ + template<typename Iterator, typename Value> + void test_append(Iterator target, Value value) + { + *target++ = value; + } + + template< class Container, class Value > + void test_remove_copy_impl( const Container& c, Value to_remove ) + { + typedef typename boost::range_value<Container>::type value_type; + std::vector<value_type> reference; ++ typedef BOOST_DEDUCED_TYPENAME std::vector<value_type>::iterator iterator_t;
+ + test_append( + std::remove_copy(c.begin(), c.end(), + std::back_inserter(reference), to_remove), + to_remove); + + std::vector<value_type> test; + test_append( + boost::remove_copy(c, std::back_inserter(test), to_remove), + to_remove); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test.begin(), test.end() ); + + std::vector<value_type> test2; + test_append( + boost::remove_copy(boost::make_iterator_range(c), + std::back_inserter(test2), to_remove), + to_remove); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test2.begin(), test2.end() ); + } + + template< class Container > + void test_remove_copy_impl() + { + using namespace boost::assign; + + Container cont; + test_remove_copy_impl(cont, 0); + + cont.clear(); + cont += 1; + test_remove_copy_impl(cont, 0); + test_remove_copy_impl(cont, 1); + + cont.clear(); + cont += 1,1,1,1,1; + test_remove_copy_impl(cont, 0); + test_remove_copy_impl(cont, 1); + + cont.clear(); + cont += 1,2,3,4,5,6,7,8,9; + test_remove_copy_impl(cont, 1); + test_remove_copy_impl(cont, 9); + test_remove_copy_impl(cont, 4); + } + + void test_remove_copy() + { + test_remove_copy_impl< std::vector<int> >(); + test_remove_copy_impl< std::list<int> >(); + test_remove_copy_impl< std::deque<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.remove_copy" ); + + test->add( BOOST_TEST_CASE( &test_remove_copy ) ); + + return test; +} + ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/remove_copy_if.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,113 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/remove_copy_if.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/bind.hpp> +#include <algorithm> +#include <functional> +#include <list> +#include <numeric> +#include <deque> +#include <vector> + +namespace +{ + template< class Iterator, class Value > + void test_append(Iterator target, Value value) + { + *target++ = value; + } + + template< class Container, class UnaryPredicate >+ void test_remove_copy_if_impl( const Container& c, UnaryPredicate pred )
+ {+ typedef BOOST_DEDUCED_TYPENAME boost::range_value<const Container>::type value_type;
+ std::vector<value_type> reference; + + test_append(+ std::remove_copy_if(c.begin(), c.end(), std::back_inserter(reference), pred),
+ value_type() + ); + + std::vector<value_type> test; + test_append( + boost::remove_copy_if(c, std::back_inserter(test), pred), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test.begin(), test.end() ); + + std::vector<value_type> test2; + test_append( + boost::remove_copy_if(boost::make_iterator_range(c), + std::back_inserter(test2), pred), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test2.begin(), test2.end() ); + } + + template< class Container > + void test_remove_copy_if_( const Container& c, int to_remove ) + {+ test_remove_copy_if_impl(c, boost::bind(std::equal_to<int>(), _1, to_remove)); + test_remove_copy_if_impl(c, boost::bind(std::not_equal_to<int>(), _1, to_remove));
+ } + + template< class Container > + void test_remove_copy_if_impl() + { + using namespace boost::assign; + + Container cont; + test_remove_copy_if_(cont, 0); + + cont.clear(); + cont += 1; + test_remove_copy_if_(cont, 0); + test_remove_copy_if_(cont, 1); + + cont.clear(); + cont += 1,1,1,1,1; + test_remove_copy_if_(cont, 0); + test_remove_copy_if_(cont, 1); + + cont.clear(); + cont += 1,2,3,4,5,6,7,8,9; + test_remove_copy_if_(cont, 1); + test_remove_copy_if_(cont, 9); + test_remove_copy_if_(cont, 4); + } + + inline void test_remove_copy_if() + { + test_remove_copy_if_impl< std::vector<int> >(); + test_remove_copy_if_impl< std::list<int> >(); + test_remove_copy_if_impl< std::deque<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.remove_copy_if" ); + + test->add( BOOST_TEST_CASE( &test_remove_copy_if ) ); + + return test; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/replace_copy.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,110 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/replace_copy.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/bind.hpp> +#include <algorithm> +#include <functional> +#include <list> +#include <numeric> +#include <deque> +#include <vector> + +namespace +{ + template<typename Iterator, typename Value> + void test_append(Iterator target, Value value) + { + *target++ = value; + } + + template< class Container, class Value > + void test_replace_copy_impl( const Container& c, Value to_replace ) + { + const Value replace_with = to_replace * 2; + + typedef typename boost::range_value<Container>::type value_type; + std::vector<value_type> reference; ++ typedef BOOST_DEDUCED_TYPENAME std::vector<value_type>::iterator iterator_t;
+ + test_append( + std::replace_copy(c.begin(), c.end(),+ std::back_inserter(reference), to_replace, replace_with),
+ to_replace); + + std::vector<value_type> test; + test_append(+ boost::replace_copy(c, std::back_inserter(test), to_replace, replace_with),
+ to_replace); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test.begin(), test.end() ); + + std::vector<value_type> test2; + test_append( + boost::replace_copy(boost::make_iterator_range(c), + std::back_inserter(test2), to_replace, + replace_with), + to_replace); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test2.begin(), test2.end() ); + } + + template< class Container > + void test_replace_copy_impl() + { + using namespace boost::assign; + + Container cont; + test_replace_copy_impl(cont, 0); + + cont.clear(); + cont += 1; + test_replace_copy_impl(cont, 0); + test_replace_copy_impl(cont, 1); + + cont.clear(); + cont += 1,1,1,1,1; + test_replace_copy_impl(cont, 0); + test_replace_copy_impl(cont, 1); + + cont.clear(); + cont += 1,2,3,4,5,6,7,8,9; + test_replace_copy_impl(cont, 1); + test_replace_copy_impl(cont, 9); + test_replace_copy_impl(cont, 4); + } + + void test_replace_copy() + { + test_replace_copy_impl< std::vector<int> >(); + test_replace_copy_impl< std::list<int> >(); + test_replace_copy_impl< std::deque<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.replace_copy" ); + + test->add( BOOST_TEST_CASE( &test_replace_copy ) ); + + return test; +} + ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/replace_copy_if.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,115 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/replace_copy_if.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/bind.hpp> +#include <algorithm> +#include <functional> +#include <list> +#include <numeric> +#include <deque> +#include <vector> + +namespace +{ + template< class Iterator, class Value > + void test_append(Iterator target, Value value) + { + *target++ = value; + } + + template< class Container, class UnaryPredicate >+ void test_replace_copy_if_impl( const Container& c, UnaryPredicate pred )
+ {+ typedef BOOST_DEDUCED_TYPENAME boost::range_value<const Container>::type value_type;
+ const value_type replace_with = value_type(); + std::vector<value_type> reference; + + test_append(+ std::replace_copy_if(c.begin(), c.end(), std::back_inserter(reference), pred, replace_with),
+ value_type() + ); + + std::vector<value_type> test; + test_append(+ boost::replace_copy_if(c, std::back_inserter(test), pred, replace_with),
+ value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test.begin(), test.end() ); + + std::vector<value_type> test2; + test_append( + boost::replace_copy_if(boost::make_iterator_range(c), + std::back_inserter(test2), pred, + replace_with), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test2.begin(), test2.end() ); + } + + template< class Container > + void test_replace_copy_if_( const Container& c, int to_replace ) + {+ test_replace_copy_if_impl(c, boost::bind(std::equal_to<int>(), _1, to_replace)); + test_replace_copy_if_impl(c, boost::bind(std::not_equal_to<int>(), _1, to_replace));
+ } + + template< class Container > + void test_replace_copy_if_impl() + { + using namespace boost::assign; + + Container cont; + test_replace_copy_if_(cont, 0); + + cont.clear(); + cont += 1; + test_replace_copy_if_(cont, 0); + test_replace_copy_if_(cont, 1); + + cont.clear(); + cont += 1,1,1,1,1; + test_replace_copy_if_(cont, 0); + test_replace_copy_if_(cont, 1); + + cont.clear(); + cont += 1,2,3,4,5,6,7,8,9; + test_replace_copy_if_(cont, 1); + test_replace_copy_if_(cont, 9); + test_replace_copy_if_(cont, 4); + } + + inline void test_replace_copy_if() + { + test_replace_copy_if_impl< std::vector<int> >(); + test_replace_copy_if_impl< std::list<int> >(); + test_replace_copy_if_impl< std::deque<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.replace_copy_if" ); + + test->add( BOOST_TEST_CASE( &test_replace_copy_if ) ); + + return test; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/reverse_copy.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,97 @@ +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/reverse_copy.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/bind.hpp> +#include <algorithm> +#include <functional> +#include <list> +#include <numeric> +#include <deque> +#include <vector> + +namespace +{ + template<class OutputIterator, class Value> + void test_append(OutputIterator out, Value value) + { + *out++ = value; + } + + template<class Container> + void test_reverse_copy_impl(Container& cont) + {+ typedef BOOST_DEDUCED_TYPENAME boost::range_value<Container>::type value_type;
+ std::vector<value_type> reference; + std::vector<value_type> test; + + test_append(+ std::reverse_copy(cont.begin(), cont.end(), std::back_inserter(reference)),
+ value_type() + ); + + test_append( + boost::reverse_copy(cont, std::back_inserter(test)), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test.begin(), test.end() ); + + test.clear(); + + test_append( + boost::reverse_copy(boost::make_iterator_range(cont), + std::back_inserter(test)), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test.begin(), test.end() ); + } + + template<class Container> + void test_reverse_copy_impl() + { + using namespace boost::assign; + + Container cont; + test_reverse_copy_impl(cont); + + cont.clear(); + cont += 1; + test_reverse_copy_impl(cont); + + cont.clear(); + cont += 1,2,3,4,5,6,7,8,9; + test_reverse_copy_impl(cont); + } + + void test_reverse_copy() + { + test_reverse_copy_impl< std::vector<int> >(); + test_reverse_copy_impl< std::list<int> >(); + test_reverse_copy_impl< std::deque<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.reverse_copy" ); + + test->add( BOOST_TEST_CASE( &::test_reverse_copy ) ); + + return test; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/rotate_copy.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,112 @@ +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/rotate_copy.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/bind.hpp> +#include <algorithm> +#include <functional> +#include <list> +#include <numeric> +#include <deque> +#include <vector> + +namespace +{ + template<class OutputIterator, class Value> + void test_append(OutputIterator target, Value value) + { + *target++ = value; + } + + template<class Container, class Iterator> + void test_rotate_copy_impl(Container& cont, Iterator where_it) + {+ typedef BOOST_DEDUCED_TYPENAME boost::range_value<Container>::type value_type;
+ std::vector<value_type> reference; + std::vector<value_type> test; ++ typedef BOOST_DEDUCED_TYPENAME boost::range_iterator<Container>::type iterator_t;
+ + test_append( + std::rotate_copy(cont.begin(), where_it, cont.end(), + std::back_inserter(reference)), + value_type() + ); + + test_append( + boost::rotate_copy(cont, where_it, std::back_inserter(test)), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test.begin(), test.end() ); + + test.clear(); + + test_append( + boost::rotate_copy(boost::make_iterator_range(cont), where_it, + std::back_inserter(test)), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS( reference.begin(), reference.end(), + test.begin(), test.end() ); + } + + template<class Container> + void test_rotate_copy_impl(Container& cont) + {+ typedef BOOST_DEDUCED_TYPENAME boost::range_iterator<Container>::type iterator_t;
+ + iterator_t last = cont.end(); + for (iterator_t it = cont.begin(); it != last; ++it) + { + test_rotate_copy_impl(cont, it); + } + } + + template<class Container> + void test_rotate_copy_impl() + { + using namespace boost::assign; + + Container cont; + test_rotate_copy_impl(cont); + + cont.clear(); + cont += 1; + test_rotate_copy_impl(cont); + + cont.clear(); + cont += 1,2,3,4,5,6,7,8,9; + test_rotate_copy_impl(cont); + } + + void test_rotate_copy() + { + test_rotate_copy_impl< std::vector<int> >(); + test_rotate_copy_impl< std::list<int> >(); + test_rotate_copy_impl< std::deque<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.rotate_copy" ); + + test->add( BOOST_TEST_CASE( &test_rotate_copy ) ); + + return test; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/search_n.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,93 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/search_n.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <algorithm> +#include <list> +#include <set> +#include <vector> + +namespace +{ + template< class Container1, class Value > + void test_search_n_impl(Container1& cont1, Value value) + {+ typedef BOOST_DEDUCED_TYPENAME Container1::const_iterator const_iterator1_t;
+ typedef BOOST_DEDUCED_TYPENAME Container1::iterator iterator1_t; + + const Container1& ccont1 = cont1; + + for (std::size_t n = 0; n < cont1.size(); ++n) + { + iterator1_t it = boost::search_n(cont1, n, value);+ BOOST_CHECK( it == boost::search_n(boost::make_iterator_range(cont1), n, value) ); + BOOST_CHECK( it == std::search_n(cont1.begin(), cont1.end(), n, value) );
+ + const_iterator1_t cit = boost::search_n(ccont1, n, value);+ BOOST_CHECK( cit == boost::search_n(boost::make_iterator_range(ccont1), n, value) ); + BOOST_CHECK( cit == std::search_n(ccont1.begin(), ccont1.end(), n, value) );
+ } + } + + template< class Container1, class Container2 > + void test_search_n_impl() + { + using namespace boost::assign; + + Container1 cont1; + + test_search_n_impl(cont1, 1); + + cont1 += 1; + test_search_n_impl(cont1, 1); + test_search_n_impl(cont1, 0); + + cont1.clear(); + cont1 += 1,1; + test_search_n_impl(cont1, 1); + test_search_n_impl(cont1, 0); + + cont1 += 1,1,1; + test_search_n_impl(cont1, 1); + test_search_n_impl(cont1, 0); + + cont1.clear(); + cont1 += 1,2,3,4,5,6,7,8,9; + test_search_n_impl(cont1, 1); + test_search_n_impl(cont1, 2); + test_search_n_impl(cont1, 5); + test_search_n_impl(cont1, 9); + } + + void test_search_n() + { + test_search_n_impl< std::list<int>, std::list<int> >(); + test_search_n_impl< std::vector<int>, std::vector<int> >(); + test_search_n_impl< std::set<int>, std::set<int> >(); + test_search_n_impl< std::list<int>, std::vector<int> >(); + test_search_n_impl< std::vector<int>, std::list<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.search_n" ); + + test->add( BOOST_TEST_CASE( &test_search_n ) ); + + return test; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/swap_ranges.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,116 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/swap_ranges.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/bind.hpp> +#include <algorithm> +#include <functional> +#include <list> +#include <numeric> +#include <deque> +#include <vector> + +namespace +{ + template<class Container1, class Container2>+ void test_swap_ranges_impl(const Container1& source1, const Container2& source2)
+ { + Container1 reference1(source1); + Container2 reference2(source2);+ std::swap_ranges(reference1.begin(), reference1.end(), reference2.begin());
+ + Container1 test1(source1); + Container2 test2(source2); + boost::swap_ranges(test1, test2); ++ BOOST_CHECK_EQUAL_COLLECTIONS( reference1.begin(), reference1.end(),
+ test1.begin(), test1.end() ); ++ BOOST_CHECK_EQUAL_COLLECTIONS( reference2.begin(), reference2.end(),
+ test2.begin(), test2.end() ); + + test1 = source1; + test2 = source2; + boost::swap_ranges(boost::make_iterator_range(test1), test2);+ BOOST_CHECK_EQUAL_COLLECTIONS( reference1.begin(), reference1.end(),
+ test1.begin(), test1.end() );+ BOOST_CHECK_EQUAL_COLLECTIONS( reference2.begin(), reference2.end(),
+ test2.begin(), test2.end() ); + + test1 = source1; + test2 = source2; + boost::swap_ranges(test1, boost::make_iterator_range(test2));+ BOOST_CHECK_EQUAL_COLLECTIONS( reference1.begin(), reference1.end(),
+ test1.begin(), test1.end() );+ BOOST_CHECK_EQUAL_COLLECTIONS( reference2.begin(), reference2.end(),
+ test2.begin(), test2.end() ); + + test1 = source1; + test2 = source2; + boost::swap_ranges(boost::make_iterator_range(test1), + boost::make_iterator_range(test2));+ BOOST_CHECK_EQUAL_COLLECTIONS( reference1.begin(), reference1.end(),
+ test1.begin(), test1.end() );+ BOOST_CHECK_EQUAL_COLLECTIONS( reference2.begin(), reference2.end(),
+ test2.begin(), test2.end() ); + } + + template<class Container1, class Container2> + void test_swap_ranges_impl() + { + using namespace boost::assign; + + Container1 c1; + Container2 c2; + + test_swap_ranges_impl(c1, c2); + + c1.clear(); + c1 += 1; + c2.clear(); + c2 += 2; + test_swap_ranges_impl(c1, c2); + + c1.clear(); + c1 += 1,2,3,4,5,6,7,8,9,10; + c2.clear(); + c2 += 10,9,8,7,6,5,4,3,2,1; + test_swap_ranges_impl(c1, c2); + } + + inline void test_swap_ranges() + { + test_swap_ranges_impl< std::vector<int>, std::vector<int> >(); + test_swap_ranges_impl< std::vector<int>, std::list<int> >(); + test_swap_ranges_impl< std::vector<int>, std::deque<int> >(); + test_swap_ranges_impl< std::list<int>, std::vector<int> >(); + test_swap_ranges_impl< std::list<int>, std::list<int> >(); + test_swap_ranges_impl< std::list<int>, std::deque<int> >(); + test_swap_ranges_impl< std::deque<int>, std::vector<int> >(); + test_swap_ranges_impl< std::deque<int>, std::list<int> >(); + test_swap_ranges_impl< std::deque<int>, std::deque<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.swap_ranges" ); + + test->add( BOOST_TEST_CASE( &test_swap_ranges ) ); + + return test; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/algorithm_test/unique_copy.cpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,158 @@ +// Boost.Range library +// +// Copyright Neil Groves 2009. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#include <boost/range/algorithm/unique_copy.hpp> + +#include <boost/test/test_tools.hpp> +#include <boost/test/unit_test.hpp> + +#include <boost/assign.hpp> +#include <boost/bind.hpp> +#include <algorithm> +#include <functional> +#include <list> +#include <numeric> +#include <deque> +#include <vector> + +namespace +{ + template<class OutputIterator, class Value> + void test_append(OutputIterator target, Value value) + { + *target++ = value; + } + + template<class Container> + void test_unique_copy_impl(Container& c) + {+ typedef BOOST_DEDUCED_TYPENAME boost::range_value<Container>::type value_type;
+ std::vector<value_type> reference; + std::vector<value_type> test; + + test_append(+ std::unique_copy(c.begin(), c.end(), std::back_inserter(reference)),
+ value_type() + ); + + test_append( + boost::unique_copy(c, std::back_inserter(test)), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS(reference.begin(), reference.end(), + test.begin(), test.end()); + + test.clear(); + + test_append( + boost::unique_copy(boost::make_iterator_range(c), + std::back_inserter(test)), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS(reference.begin(), reference.end(), + test.begin(), test.end()); + } + + template<class Container, class Pred> + void test_unique_copy_impl(Container& c, Pred pred) + {+ typedef BOOST_DEDUCED_TYPENAME boost::range_value<Container>::type value_type;
+ std::vector<value_type> reference; + std::vector<value_type> test; + + test_append(+ std::unique_copy(c.begin(), c.end(), std::back_inserter(reference), pred),
+ value_type() + ); + + test_append( + boost::unique_copy(c, std::back_inserter(test), pred), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS(reference.begin(), reference.end(), + test.begin(), test.end()); + + test.clear(); + + test_append( + boost::unique_copy(boost::make_iterator_range(c), + std::back_inserter(test), pred), + value_type() + ); + + BOOST_CHECK_EQUAL_COLLECTIONS(reference.begin(), reference.end(), + test.begin(), test.end()); + } + + template<class Container, class Pred> + void test_unique_copy_driver(Pred pred) + { + using namespace boost::assign; + + typedef BOOST_DEDUCED_TYPENAME Container::value_type value_t; + + Container cont; + + test_unique_copy_impl(cont); + test_unique_copy_impl(cont, pred); + + cont.clear(); + cont += 1; + + std::vector<value_t> temp(cont.begin(), cont.end()); + std::sort(temp.begin(), temp.end()); + cont.assign(temp.begin(), temp.end()); + test_unique_copy_impl(cont); + + std::sort(temp.begin(), temp.end(), pred); + cont.assign(temp.begin(), temp.end()); + test_unique_copy_impl(cont, pred); + + cont.clear(); + cont += 1,2,2,2,2,3,4,5,6,7,8,9; + + temp.assign(cont.begin(), cont.end()); + std::sort(temp.begin(), temp.end()); + cont.assign(temp.begin(), temp.end()); + test_unique_copy_impl(cont); + + std::sort(temp.begin(), temp.end(), pred); + cont.assign(temp.begin(), temp.end()); + test_unique_copy_impl(cont, pred); + } + + template<class Container> + void test_unique_copy_impl() + { + test_unique_copy_driver<Container>(std::less<int>()); + test_unique_copy_driver<Container>(std::greater<int>()); + } + + void test_unique_copy() + { + test_unique_copy_impl< std::vector<int> >(); + test_unique_copy_impl< std::list<int> >(); + test_unique_copy_impl< std::deque<int> >(); + } +} + +boost::unit_test::test_suite* +init_unit_test_suite(int argc, char* argv[]) +{ + boost::unit_test::test_suite* test + = BOOST_TEST_SUITE( "RangeTestSuite.algorithm.unique_copy" ); + + test->add( BOOST_TEST_CASE( &test_unique_copy ) ); + + return test; +} ======================================= --- /dev/null+++ /trunk/libs/range/test/test_function/true_predicate.hpp Wed Sep 1 05:47:13 2010
@@ -0,0 +1,29 @@ +// Boost.Range library +// +// Copyright Neil Groves 2010. Use, modification and +// distribution is subject to the Boost Software License, Version +// 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// +// For more information, see http://www.boost.org/libs/range/ +// +#ifndef BOOST_RANGE_TEST_TEST_FUNCTION_TRUE_PREDICATE_HPP_INCLUDED +#define BOOST_RANGE_TEST_TEST_FUNCTION_TRUE_PREDICATE_HPP_INCLUDED + +namespace boost +{ + namespace range_test_function + { + struct true_predicate + { + typedef bool result_type; + + bool operator()() const { return true; } + template<class Arg> bool operator()(Arg) const { return true; }+ template<class Arg1, class Arg2> bool operator()(Arg1,Arg2) const { return true; }
+ }; + } +} + +#endif // include guard =======================================--- /trunk/libs/range/doc/html/quickbook_HTML.manifest Tue Jun 22 21:13:43 2010
+++ /dev/null @@ -1,152 +0,0 @@ -index.html -range/introduction.html -range/concepts.html -range/concepts/overview.html -range/concepts/single_pass_range.html -range/concepts/forward_range.html -range/concepts/bidirectional_range.html -range/concepts/random_access_range.html -range/concepts/concept_checking.html -range/reference.html -range/reference/overview.html -range/reference/concept_implementation.html -range/reference/concept_implementation/synopsis.html -range/reference/concept_implementation/semantics.html -range/reference/concept_implementation/semantics/metafunctions.html -range/reference/concept_implementation/semantics/functions.html -range/reference/adaptors.html -range/reference/adaptors/introduction.html -range/reference/adaptors/general_requirements.html -range/reference/adaptors/reference.html -range/reference/adaptors/reference/adjacent_filtered.html -range/reference/adaptors/reference/copied.html -range/reference/adaptors/reference/filtered.html -range/reference/adaptors/reference/indexed.html -range/reference/adaptors/reference/indirected.html -range/reference/adaptors/reference/map_keys.html -range/reference/adaptors/reference/map_values.html -range/reference/adaptors/reference/replaced.html -range/reference/adaptors/reference/replaced_if.html -range/reference/adaptors/reference/reversed.html -range/reference/adaptors/reference/sliced.html -range/reference/adaptors/reference/strided.html -range/reference/adaptors/reference/tokenized.html -range/reference/adaptors/reference/transformed.html -range/reference/adaptors/reference/uniqued.html -range/reference/algorithms.html -range/reference/algorithms/range_algorithm_introduction.html -range/reference/algorithms/mutating.html -range/reference/algorithms/mutating/copy.html -range/reference/algorithms/mutating/copy_backward.html -range/reference/algorithms/mutating/fill.html -range/reference/algorithms/mutating/fill_n.html -range/reference/algorithms/mutating/generate.html -range/reference/algorithms/mutating/inplace_merge.html -range/reference/algorithms/mutating/merge.html -range/reference/algorithms/mutating/nth_element.html -range/reference/algorithms/mutating/partial_sort.html -range/reference/algorithms/mutating/partition.html -range/reference/algorithms/mutating/random_shuffle.html -range/reference/algorithms/mutating/remove.html -range/reference/algorithms/mutating/remove_copy.html -range/reference/algorithms/mutating/remove_copy_if.html -range/reference/algorithms/mutating/remove_if.html -range/reference/algorithms/mutating/replace.html -range/reference/algorithms/mutating/replace_copy.html -range/reference/algorithms/mutating/replace_copy_if.html -range/reference/algorithms/mutating/replace_if.html -range/reference/algorithms/mutating/reverse.html -range/reference/algorithms/mutating/reverse_copy.html -range/reference/algorithms/mutating/rotate.html -range/reference/algorithms/mutating/rotate_copy.html -range/reference/algorithms/mutating/sort.html -range/reference/algorithms/mutating/stable_partition.html -range/reference/algorithms/mutating/stable_sort.html -range/reference/algorithms/mutating/swap_ranges.html -range/reference/algorithms/mutating/transform.html -range/reference/algorithms/mutating/unique.html -range/reference/algorithms/mutating/unique_copy.html -range/reference/algorithms/non_mutating.html -range/reference/algorithms/non_mutating/adjacent_find.html -range/reference/algorithms/non_mutating/binary_search.html -range/reference/algorithms/non_mutating/count.html -range/reference/algorithms/non_mutating/count_if.html -range/reference/algorithms/non_mutating/equal.html -range/reference/algorithms/non_mutating/equal_range.html -range/reference/algorithms/non_mutating/for_each.html -range/reference/algorithms/non_mutating/find.html -range/reference/algorithms/non_mutating/find_end.html -range/reference/algorithms/non_mutating/find_first_of.html -range/reference/algorithms/non_mutating/find_if.html -range/reference/algorithms/non_mutating/lexicographical_compare.html -range/reference/algorithms/non_mutating/lower_bound.html -range/reference/algorithms/non_mutating/max_element.html -range/reference/algorithms/non_mutating/min_element.html -range/reference/algorithms/non_mutating/mismatch.html -range/reference/algorithms/non_mutating/search.html -range/reference/algorithms/non_mutating/search_n.html -range/reference/algorithms/non_mutating/upper_bound.html -range/reference/algorithms/set.html -range/reference/algorithms/set/includes.html -range/reference/algorithms/set/set_union.html -range/reference/algorithms/set/set_intersection.html -range/reference/algorithms/set/set_difference.html -range/reference/algorithms/set/set_symmetric_difference.html -range/reference/algorithms/heap.html -range/reference/algorithms/heap/push_heap.html -range/reference/algorithms/heap/pop_heap.html -range/reference/algorithms/heap/make_heap.html -range/reference/algorithms/heap/sort_heap.html -range/reference/algorithms/permutation.html -range/reference/algorithms/permutation/next_permutation.html -range/reference/algorithms/permutation/prev_permutation.html -range/reference/algorithms/new.html -range/reference/algorithms/new/copy_n.html -range/reference/algorithms/new/erase.html -range/reference/algorithms/new/for_each.html -range/reference/algorithms/new/insert.html -range/reference/algorithms/new/iota.html -range/reference/algorithms/new/is_sorted.html -range/reference/algorithms/new/overwrite.html -range/reference/algorithms/new/push_back.html -range/reference/algorithms/new/push_front.html -range/reference/algorithms/new/remove_erase.html -range/reference/algorithms/new/remove_erase_if.html -range/reference/algorithms/numeric.html -range/reference/algorithms/numeric/accumulate.html -range/reference/algorithms/numeric/adjacent_difference.html -range/reference/algorithms/numeric/inner_product.html -range/reference/algorithms/numeric/partial_sum.html -range/reference/ranges.html -range/reference/ranges/counting_range.html -range/reference/ranges/istream_range.html -range/reference/ranges/irange.html -range/reference/utilities.html -range/reference/utilities/iterator_range.html -range/reference/utilities/sub_range.html -range/reference/utilities/join.html -range/reference/extending.html -range/reference/extending/method_1.html -range/reference/extending/method_2.html -range/reference/extending/method_3.html -range/reference/extending/method_3/method_3_1.html -range/reference/extending/method_3/method_3_2.html -range/style_guide.html -range/library_headers.html -range/library_headers/general.html -range/library_headers/adaptors.html -range/library_headers/algorithm.html -range/library_headers/algorithm_extensions.html -range/examples.html -range/mfc_atl.html -range/mfc_atl/requirements.html -range/mfc_atl/mfc_ranges.html -range/mfc_atl/atl_ranges.html -range/mfc_atl/const_ranges.html -range/mfc_atl/references.html -range/upgrade.html -range/upgrade/upgrade_from_1_42.html -range/upgrade/upgrade_from_1_34.html -range/portability.html -range/faq.html -range/history_ack.html =======================================--- /trunk/libs/range/doc/html/standalone_HTML.manifest Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,19 +0,0 @@ -index.html -range/concepts.html -range/concepts/single_pass_range.html -range/concepts/forward_range.html -range/concepts/bidirectional_range.html -range/concepts/random_access_range.html -range/concepts/concept_checking.html -range/reference.html -range/reference/synopsis.html -range/reference/semantics.html -range/reference/extending.html -range/utilities.html -range/utilities/sub_range.html -range/style_guide.html -range/library_headers.html -range/examples.html -range/portability.html -range/faq.html -range/history_ack.html =======================================--- /trunk/libs/range/doc/reference/adaptors/adjacent_filtered.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,101 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="adjacent_filtered"></a> - <h4><code>adjacent_filtered</code></h4> - <blockquote>- <pre> rng | boost::adaptors::adjacent_filtered( bi_pred )
- </pre>- <pre> boost::make_adjacent_filtered_range( rng, bi_pred )
- </pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b>- The value-type of the range is convertible to both argument types
- of <code>bi_pred</code>. - </li> - <li> - <b>Postcondition:</b>- For all adjacent elements <code>[x,y]</code> in the returned range,
- <code>bi_pred(x,y)</code> is <code>true</code>. - </li> - <li> - <b>Throws:</b> - Whatever the copy-constructor of bi_pred might throw. - </li> - <li> - <b>Range Category:</b> - SinglePassRange - </li> - </ul> - - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/adjacent_filtered.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <functional> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::assign; - <span class="keyword">using namespace</span> boost::adaptors; - - std::vector<<span class="keyword">int</span>> input; - input += 1,1,2,2,2,3,4,5,6; - - boost::copy(- input | adjacent_filtered(std::not_equal_to<<span class="keyword">int</span>>()), - std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This would produce the output:<br /> - <code>1,2,3,4,5,6</code><br /> - </p> - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/copied.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,93 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="copied"></a> - <h4><code>copied</code></h4> - <blockquote> - <pre>rng | boost::adaptors::copied( n, m )</pre> - <pre>boost::make_copied_range( rng, n, m )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b>- <code>0 <= n && n <= m && m < distance(rng)</code>
- </li> - <li> - <b>Returns:</b> - A new <code>iterator_range</code> that holds the sliced range - <code>[n,m)</code> of the original range. - </li> - <li> - <b>Range Category:</b> - RandomAccessRange - </li> - </ul> - - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/copied.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::assign; - <span class="keyword">using namespace</span> boost::adaptors; - - std::vector<<span class="keyword">int</span>> input; - input += 1,2,3,4,5,6,7,8,9,10; - - boost::copy( - input | copied(1, 5),- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This would produce the output: - <code>2,3,4,5</code> - </p> - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/filtered.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,108 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="filtered"></a> - <h4><code>filtered</code></h4> - <blockquote> - <pre>rng | boost::adaptors::filtered( pred )</pre> - <pre>boost::make_filtered_range( rng, pred )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b>- The value-type of the range is convertible to the argument type of
- <code>pred</code>. - </li> - <li> - <b>Postcondition:</b> - For all elements <code>x</code> in the returned range, - <code>pred(x)</code> is <code>true</code> - </li> - <li> - <b>Throws:</b> - Whatever the copy-constructor of pred might throw. - </li> - <li> - <b>Range Category:</b> - ForwardRange - </li> - <li> - <b>Returned Range Category:</b> - ForwardRange - </li> - </ul> - - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/filtered.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> - - <span class="keyword">struct</span> is_even - {- <span class="keyword">bool operator</span>()(<span class="keyword">int</span> x) <span class="keyword">const</span> { <span class="keyword">return</span> x % 2 == 0; }
- }; -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::assign; - <span class="keyword">using namespace</span> boost::adaptors; - - std::vector<<span class="keyword">int</span>> input; - input += 1,2,3,4,5,6,7,8,9; - - boost::copy( - input | filtered(is_even()),- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This would produce the output: <br /> - <code>2,4,6,8</code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/indexed.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,117 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="indexed"></a> - <h4><code>indexed</code></h4> - <blockquote> - <pre>rng | boost::adaptors::indexed</pre> - <pre>boost::make_indexed_range( rng )</pre> - </blockquote> - <ul> - <li> - <b>Returns:</b> - A range adapted to return both the element and the associated - index. - The returned range consists of iterators that have in addition - to the usual iterator member functions an- <code>index()</code> member function that returns the appropriate
- index for the element in the sequence corresponding with the - iterator. - </li> - <li> - <b>Range Category:</b> - SinglePassRange - </li> - </ul> - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/indexed.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> -- <span class="keyword">template</span><<span class="keyword">class</span> Iterator>
- void display_element_and_index(Iterator first, Iterator last) - {- <span class="keyword">for</span> (Iterator it = first; it != last; ++it)
- { - std::cout << "Element = " << *it - << " Index = " << it.index() << std::endl; - } - } -- <span class="keyword">template</span><<span class="keyword">class</span> SinglePassRange> - void display_element_and_index(<span class="keyword">const</span> SinglePassRange& rng)
- { - display_element_and_index(boost::begin(rng), boost::end(rng)); - } -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::assign; - <span class="keyword">using namespace</span> boost::adaptors; - - std::vector<<span class="keyword">int</span>> input; - input += 10,20,30,40,50,60,70,80,90; - - display_element_and_index( input | indexed(0) ); - - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: <br /> - <code> - Element = 10 Index = 0 <br /> - Element = 20 Index = 1 <br /> - Element = 30 Index = 2 <br /> - Element = 40 Index = 3 <br /> - Element = 50 Index = 4 <br /> - Element = 60 Index = 5 <br /> - Element = 70 Index = 6 <br /> - Element = 80 Index = 7 <br /> - Element = 90 Index = 8 <br /> - </code> - </p> - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/indirected.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,95 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="indirected"></a> - <h4><code>indirected</code></h4> - <blockquote> - <pre>rng | boost::adaptors::indirected</pre> - <pre>boost::make_indirected_range( rng )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b>- The value-type of the range defines unary <code>operator*()</code>
- </li> - <li> - <b>Postcondition:</b> - For all elements <code>x</code> in the returned range, - <code>x</code> is the result of <code>*y</code> where- <code>y</code> is the corresponding element in the original range.
- </li> - <li> - <b>Range Category:</b> - SinglePassRange - </li> - </ul> - - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/indirected.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/shared_ptr.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::adaptors; -- std::vector<boost::shared_ptr<<span class="keyword">int</span>> > input;
-- <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < 10; ++i) - input.push_back(boost::shared_ptr<<span class="keyword">int</span>>(<span class="keyword">new int</span>(i)));
- - boost::copy( - input | indirected,- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: <br /> - <code>0,1,2,3,4,5,6,7,8,9</code> - </p> - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/map_keys.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,99 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="map_keys"></a> - <h4><code>map_keys</code></h4> - <blockquote> - <pre>rng | boost::adaptors::map_keys</pre> - <pre>boost::make_map_key_range( rng )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - The value-type of the range is an instantiation of std::pair. - </li> - <li> - <b>Postcondition:</b> - For all elements <code>x</code> in the returned range, - <code>x</code> is the result of <code>y.first</code> where- <code>y</code> is the corresponding element in the original range.
- </li> - <li> - <b>Range Category:</b> - SinglePassRange - </li> - </ul> - - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/map.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <map> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::assign; - <span class="keyword">using namespace</span> boost::adaptors; -- std::map<<span class="keyword">int</span>,<span class="keyword">int</span>> input; - <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < 10; ++i)
- input.insert(std::make_pair(i, i * 10)); - - boost::copy( - input | map_keys,- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: <br /> - <code> - 0,1,2,3,4,5,6,7,8,9 - </code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/map_values.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,98 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="map_values"></a> - <h4><code>map_values</code></h4> - <blockquote> - <pre>rng | boost::adaptors::map_values</pre> - <pre>boost::make_map_value_range( rng )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - The value-type of the range is an instantiation of std::pair. - </li> - <li> - <b>Postcondition:</b> - For all elements <code>x</code> in the returned range, - <code>x</code> is the result of <code>y.second</code> where- <code>y</code> is the corresponding element in the original range.
- </li> - <li> - <b>Range Category:</b> - SinglePassRange - </li> - </ul> - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/map.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <map> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::assign; - <span class="keyword">using namespace</span> boost::adaptors; -- std::map<<span class="keyword">int</span>,<span class="keyword">int</span>> input; - <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i < 10; ++i)
- input.insert(std::make_pair(i, i * 10)); - - boost::copy( - input | map_values,- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: <br /> - <code> - 0,10,20,30,40,50,60,70,80,90 - </code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/replaced.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,107 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="replaced"></a> - <h4><code>replaced</code></h4> - <blockquote> - <pre>rng | boost::adaptors::replaced( new_value, old_value )</pre> - <pre>boost::make_replaced_range( rng, new_value, old_value )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - <ul> - <li>- <code>new_value</code> is convertible to the value-type of
- the range. - </li> - <li>- <code>old_value</code> is convertible to the value-type of
- the range. - </li> - </ul> - </li> - <li> - <b>Postcondition:</b>- For all elements <code>x</code> in the returned range, the value
- <code>x</code> is equal to the value of - <code>(y == old_value) ? new_value : y</code>- where <code>y</code> is the corresponding element in the original
- range. - </li> - <li> - <b>Range Category:</b> - ForwardRange - </li> - </ul> - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/replaced.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::adaptors; - <span class="keyword">using namespace</span> boost::assign; - - std::vector<<span class="keyword">int</span>> input; - input += 1,2,3,2,5,2,7,2,9; - - boost::copy( - input | replaced(2, 10),- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: <br /> - <code> - 1,10,3,10,5,10,7,10,9 - </code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/replaced_if.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,114 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="replaced_if"></a> - <h4><code>replaced_if</code></h4> - <blockquote> - <pre>rng | boost::adaptors::replaced_if( pred, new_value )</pre> - <pre>boost::make_replaced_if_range( rng, pred, new_value )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - <ul> - <li>- The range value-type is convertible to the argument type
- of <code>pred</code>. - </li> - <li> - <code>new_value</code> is convertible to the value-type - of the range. - </li> - </ul> - </li> - <li> - <b>Postconditions:</b>- For all elements <code>[x]</code> in the returned range, the value
- <code>x</code> is equal to the value of - <code>pred(y) ? new_value : y</code>- where <code>y</code> is the corresponding element in the original
- range. - </li> - <li> - <b>Range Category:</b> - ForwardRange - </li> - </ul> - - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/replaced_if.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> - - <span class="keyword">struct</span> is_even - {- <span class="keyword">bool operator</span>()(<span class="keyword">int</span> x) <span class="keyword">const</span> { <span class="keyword">return</span> x % 2 == 0; }
- }; -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::adaptors; - <span class="keyword">using namespace</span> boost::assign; - - std::vector<<span class="keyword">int</span>> input; - input += 1,2,3,4,5,6,7,8,9; - - boost::copy( - input | replaced_if(is_even(), 10),- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - - </pre> - <p> - This produces the output: <br /> - <code> - 1,10,3,10,5,10,7,10,9 - </code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/reversed.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,91 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="reversed"></a> - <h4><code>reversed</code></h4> - <blockquote> - <pre>rng | boost::adaptors::reversed</pre> - <pre>boost::make_reversed_range( rng )</pre> - </blockquote> - <ul> - <li> - <b>Returns:</b> - A range whose iterators behave as if they were the original - iterators wrapped in <code>reverse_iterator</code>. - </li> - <li> - <b>Range Category:</b> - BidirectionalRange - </li> - </ul> - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/reversed.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::adaptors; - <span class="keyword">using namespace</span> boost::assign; - - std::vector<<span class="keyword">int</span>> input; - input += 1,2,3,4,5,6,7,8,9; - - boost::copy( - input | reversed,- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: <br /> - <code> - 9,8,7,6,5,4,3,2,1 - </code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/sliced.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,94 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="sliced"></a> - <h4><code>sliced</code></h4> - <blockquote> - <pre>rng | boost::adaptors::sliced( n, m )</pre> - <pre>boost::make_sliced_range( rng, n, m )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - <code>0 <= n && n <= m && m < distance(rng)</code> - </li> - <li> - <b>Returns:</b> - <code>make_range(rng, n, m)</code> - </li> - <li> - <b>Range Category:</b> - RandomAccessRange - </li> - </ul> - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/sliced.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::adaptors; - <span class="keyword">using namespace</span> boost::assign; - - std::vector<<span class="keyword">int</span>> input; - input += 1,2,3,4,5,6,7,8,9; - - boost::copy( - input | sliced(2, 5),- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: <br /> - <code> - 3,4,5 - </code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/strided.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,94 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="strided"></a> - <h4><code>strided</code></h4> - <blockquote> - <pre>rng | boost::adaptors::strided( n )</pre> - <pre>boost::make_strided_range( rng, n )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - <code>0 <= n && n <= distance(rng)</code> - </li> - <li> - <b>Returns:</b>- A new range based on <code>rng</code> where traversal is performed in steps of <code>n</code>.
- </li> - <li> - <b>Range Category:</b> - RandomAccessRange - </li> - </ul> - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/strided.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp>
- <span class="keyword">#include</span> <boost/assign.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::adaptors; - <span class="keyword">using namespace</span> boost::assign; - - std::vector<<span class="keyword">int</span>> input; - input += 1,2,3,4,5,6,7,8,9,10; - - boost::copy( - input | strided(2),- std::ostream_iterator<<span class="keyword">int</span>>(std::cout, ","));
- - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: - <code> - 1,3,5,7,9 - </code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/tokenized.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,118 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="tokenized"></a> - <h4><code>tokenized</code></h4> - <blockquote> - <pre>rng | boost::adaptors::tokenized( regex )</pre> - <pre>rng | boost::adaptors::tokenized( regex, i )</pre> - <pre>rng | boost::adaptors::tokenized( regex, rndRng )</pre> - <pre>rng | boost::adaptors::tokenized( regex, i, flags )</pre> - <pre>rng | boost::adaptors::tokenized( regex, rndRng, flags )</pre> - <pre>boost::make_tokenized_range( rng, regex, i, flags )</pre> - <pre>boost::make_tokenized_range( rng, regex, rngRng, flags )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - <ul> - <li> - Let <code>T</code> denote- <code>typename range_value< decltype(rng)
::type</code>,
- then <code>regex</code> has the type - <code>basic_regex<T></code> or is - implicitly convertible to one of these types. - </li> - <li> - <code>i</code> has the type <code>int</code>. - </li> - <li>- the value-type of <code>rndRng</code> is <code>int</code>.
- </li> - <li> - <code>flags</code> has the type - <code>regex_constants::syntax_option_type</code>. - </li> - </ul> - </li> - <li> - <b>Returns:</b> - A range whose iterators behave as if they were the- original iterators wrapped in <code>regex_token_iterator</code>.
- The first iterator in the range would be constructed by - forwarding all the arguments of <code>tokenized()</code> to the - <code>regex_token_iterator</code> constructor. - </li> - <li> - <b>Throws:</b> - Whatever constructing and copying equivalent - <code>regex_token_iterator</code>s might throw. - </li> - <li> - <b>Range Category:</b> - RandomAccessRange - </li> - </ul> - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/tokenized.hpp> - <span class="keyword">#include</span> <boost/range/algorithm_ext/push_back.hpp>
- <span class="keyword">#include</span> <boost/assert.hpp> - <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <string> - <span class="keyword">#include</span> <vector> -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv)
- { - <span class="keyword">using namespace</span> boost::adaptors; - - std::string input = "a b c d e f g hijklmnopqrstuvwxyz";- std::vector< boost::sub_match< std::string::iterator > > result; - boost::push_back(result, input | tokenized(boost::regex("\\b")));
- - BOOST_ASSERT( boost::size(result) == 16u ); - - <span class="keyword">return</span> 0; - } - </pre> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/transformed.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,107 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="transformed"></a> - <h4><code>transformed</code></h4> - <blockquote> - <pre>rng | boost::adaptors::transformed( fun )</pre> - <pre>boost::make_transformed_range( rng, fun )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - The value-type of the range is convertible to the argument type - of fun. - </li> - <li> - <b>Postcondition:</b> - For all elements <code>x</code> in the returned range, - <code>x</code> is the result of <code>fun(y)</code> where- <code>y</code> is the corresponding element in the original range.
- </li> - <li> - <b>Throws:</b> - Whatever the copy-constructor of <code>fun</code> might throw. - </li> - <li> - <b>Range Category:</b> - SinglePassRange - </li> - </ul> - <hr /> - <h3>Example</h3> - <pre>- <span class="keyword">#include</span> <boost/range/adaptor/transformed.hpp> - <span class="keyword">#include</span> <boost/range/algorithm/copy.hpp> - <span class="keyword">#include</span> <boost/range/assign.hpp>
- <span class="keyword">#include</span> <algorithm> - <span class="keyword">#include</span> <iostream> - <span class="keyword">#include</span> <vector> - - <span class="keyword">struct</span> double_int - { - <span class="keyword">typedef int</span> result_type;- <span class="keyword">int operator</span>()(<span class="keyword">int</span> x) <span class="keyword">const</span> { <span class="keyword">return</span> x * 2; }
- }; -- <span class="keyword">int</span> main(<span class="keyword">int</span> argc, <span class="keyword">const char</span>* argv[])
- { - <span class="keyword">using namespace</span> boost::adaptors; - <span class="keyword">using namespace</span> boost::assign; - - std::vector<<span class="keyword">int</span>> input; - input += 1,2,3,4,5,6,7,8,9,10; - - boost::copy( - input | transformed(double_int()), - std::ostream_iterator<int>(std::cout, ",")); - - <span class="keyword">return</span> 0; - } - </pre> - <p> - This produces the output: <br /> - <code> - 2,4,6,8,10,12,14,16,18,20 - </code> - </p> - - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - =======================================--- /trunk/libs/range/doc/reference/adaptors/uniqued.html Mon May 31 00:54:22 2010
+++ /dev/null @@ -1,95 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> - -<html> -<head>- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Boost.Range Range Adaptors </title> - <link rel="stylesheet" href="../style.css" type="text/css"> -</head> - - <body> - - <table border="0" > - <tr> - <td ><img src="../../../boost.png" border="0" /></td> - <td ><h1 align="center">Boost.Range </h1></td> - </tr> - </table> - - <h2> Range Adaptors </h2> - - <hr /> - <a name="uniqued"></a> - <h4><code>uniqued</code></h4> - <blockquote> - <pre>rng | boost::adaptors::uniqued</pre> - <pre>boost::make_uniqued_range( rng )</pre> - </blockquote> - <ul> - <li> - <b>Precondition:</b> - The value-type of the range is comparable with - <code>operator==()</code>. - </li> - <li> - <b>Postcondition:</b>- For all adjacent elements <code>[x,y]</code> in the returned range,
- <code>x==y</code> is false. - </li> - <li> - <b>Range Category:</b> - ForwardRange - </li> - </ul> - - <hr /> - <h3>Example</h3> - - <pre> - #include <boost/range/adaptor/uniqued.hpp> - #include <boost/range/algorithm/copy.hpp> - #include <boost/assign.hpp> - #include <algorithm> - #include <iostream> - #include <vector> - - int main(int argc, const char* argv) - { - using namespace boost::assign; - using namespace boost::adaptors; - - std::vector<int> input; - input += 1,1,2,2,2,3,4,5,6; - - boost::copy( - input | uniqued, - std::ostream_iterator<int>(std::cout, ",") ); - - return 0; - } - </pre> - <p> - This would produce the output:<br /> - <code>1,2,3,4,5,6</code><br /> - </p> - <hr /> - <p> - (C) Copyright Neil Groves 2009 - (C) Copyright Thorsten Ottosen 2003-2004 - </p> - - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - <br /> - </body> -</html> - ======================================= --- /trunk/libs/random/src/random_device.cpp Mon May 31 00:54:22 2010 +++ /trunk/libs/random/src/random_device.cpp Wed Sep 1 05:47:13 2010 @@ -6,7 +6,7 @@ * accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * - * $Id: random_device.cpp 60755 2010-03-22 00:45:06Z steven_watanabe $ + * $Id: random_device.cpp 62347 2010-05-31 16:44:36Z steven_watanabe $ * */ @@ -17,7 +17,7 @@ #include <cassert> -#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION+#if defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) && !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1600))
// A definition is required even for integral static constants const bool boost::random_device::has_fixed_range; const boost::random_device::result_type boost::random_device::min_value; @@ -31,7 +31,30 @@ #include <wincrypt.h> #include <stdexcept> // std::invalid_argument -#pragma comment(lib, "Advapi32.lib") +#define BOOST_AUTO_LINK_NOMANGLE +#define BOOST_LIB_NAME "Advapi32" +#include <boost/config/auto_link.hpp> + +#ifdef __MINGW32__ + +extern "C" { + +// mingw's wincrypt.h appears to be missing some things +WINADVAPI +BOOL +WINAPI +CryptEnumProvidersA( + DWORD dwIndex, + DWORD *pdwReserved, + DWORD dwFlags, + DWORD *pdwProvType, + LPSTR szProvName, + DWORD *pcbProvName + ); + +} + +#endifBOOST_RANDOM_DECL const char * const boost::random_device::default_token = MS_DEF_PROV_A;
@@ -77,7 +100,6 @@ private: void error(const std::string & msg) { - DWORD error_code = GetLastError(); char buf[80]; DWORD num = FormatMessageA( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, ======================================= --- /trunk/libs/random/test/Jamfile.v2 Mon May 31 00:54:22 2010 +++ /trunk/libs/random/test/Jamfile.v2 Wed Sep 1 05:47:13 2010 @@ -13,6 +13,8 @@ run random_test.cpp ; run ../example/random_demo.cpp ; run validate.cpp ;+run test_random_device.cpp /boost//random : : : <link>static : test_random_device ; +run test_random_device.cpp /boost//random : : : <link>shared : test_random_device_dll ;
local all-urngs = rand48 ======================================= --- /trunk/libs/range/doc/Jamfile.v2 Mon May 31 00:54:22 2010 +++ /trunk/libs/range/doc/Jamfile.v2 Wed Sep 1 05:47:13 2010 @@ -19,8 +19,6 @@ boost_range.qbk : <xsl:param>boost.root=../../../.. - <xsl:param>boost.libraries=../../../libraries.htm - <xsl:param>html.stylesheet=../../../../doc/html/boostbook.css <xsl:param>chunk.section.depth=4 <xsl:param>chunk.first.sections=1 <xsl:param>toc.section.depth=3 ======================================= --- /trunk/libs/range/doc/concepts.qbk Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/concepts.qbk Wed Sep 1 05:47:13 2010 @@ -19,13 +19,13 @@Because of the second requirement, a Range object must be passed by (const or non-const) reference in generic code.\n
由于第二个要求,区间对象必须以(常量或非常量)引用的方式传入泛型代码。-The operations that can be performed on a Range is dependent on the [@../../iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal traversal category] of the underlying iterator type. Therefore the range concepts are named to reflect which traversal category its iterators support. See also terminology and style guidelines. for more information about naming of ranges.\n +The operations that can be performed on a Range is dependent on the [@boost:/libs/iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal traversal category] of the underlying iterator type. Therefore the range concepts are named to reflect which traversal category its iterators support. See also terminology and style guidelines. for more information about naming of ranges.\n
一个区间上可以执行的操作取决于其底层迭代器类型的-[@../../iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal 遍 历类别]。 +[@boost:/libs/iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal 遍 历类别]。 因此区间概念的命名正是反映了其迭代器所支持的遍历类别。有关区间命名的更多信 息请见 术语及风格 一节。
-The concepts described below specifies associated types as [@../../libs/mpl/doc/refmanual/metafunction.html metafunctions] and all functions as free-standing functions to allow for a layer of indirection.\n -下述概念以 [@../../libs/mpl/doc/refmanual/metafunction.html 元函数] 的方式 给出关联类型,而且所有函数都是独立函数,以用于间接层。 +The concepts described below specifies associated types as [@boost:/libs/mpl/doc/refmanual/metafunction.html metafunctions] and all functions as free-standing functions to allow for a layer of indirection.\n +下述概念以 [@boost:/libs/mpl/doc/refmanual/metafunction.html 元函数] 的方式 给出关联类型,而且所有函数都是独立函数,以用于间接层。
[endsect] @@ -265,8 +265,8 @@ [section:concept_checking Concept Checking 概念检查]-Each of the range concepts has a corresponding concept checking class in the file [@../../boost/range/concepts.hpp `<boost/range/concepts.hpp>`]. These classes may be used in conjunction with the __concept_check__ to ensure that the type of a template parameter is compatible with a range concept. If not, a meaningful compile time error is generated. Checks are provided for the range concepts related to iterator traversal categories. For example, the following line checks that the type `T` models the __forward_range__ concept.\n -每一个区间概念都有一个对应的概念检查类在 [@../../boost/range/concepts.hpp `<boost/range/concepts.hpp>`] 中。 +Each of the range concepts has a corresponding concept checking class in the file [@boost:/boost/range/concepts.hpp `<boost/range/concepts.hpp>`]. These classes may be used in conjunction with the __concept_check__ to ensure that the type of a template parameter is compatible with a range concept. If not, a meaningful compile time error is generated. Checks are provided for the range concepts related to iterator traversal categories. For example, the following line checks that the type `T` models the __forward_range__ concept.\n +每一个区间概念都有一个对应的概念检查类在 [@boost:/boost/range/concepts.hpp `<boost/range/concepts.hpp>`] 中。 这些类可以和 __concept_check__ 一起使用,以确保模板参数的类型兼容于某个区间 概念。如果不兼容,则产生一个编译期错误。 为区间概念所提供的检查是关于迭代器遍历类别的。例如,下面这行代码检查类型 `T` 是否符合 __forward_range__ 的概念。
======================================= --- /trunk/libs/range/doc/history_ack.qbk Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/history_ack.qbk Wed Sep 1 05:47:13 2010 @@ -26,11 +26,18 @@ There were an enormous number of very significant contributors through all stages of this library.+Prior to Boost.RangeEx there had been a number of Range library implementations,
+these include library implementations by Eric Niebler, Adobe,+Shunsuke Sogame etc. Eric Niebler contributed the Range Adaptor idea which is +arguably the single biggest innovation in this library. Inevitably a great deal +of commonality evolved in each of these libraries, but a considerable amount
+of effort was expended to learn from all of the divergent techniques. +The people in the following list all made contributions in the form of reviews,
user feedback, design suggestions, or defect detection:* Thorsten Ottosen: review management, design advice, documentation feedback
-* Eric Niebler: feedback +* Eric Niebler: early implementation, and review feedback * Joel de Guzman: review * Mathias Gaunard: review * David Abrahams: implementation advice ======================================= --- /trunk/libs/range/doc/html/index.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/index.html Wed Sep 1 05:47:13 2010 @@ -2,23 +2,23 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Chapter 1. Range 2.0</title>-<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> -<link rel="start" href="index.html" title="Chapter 1. Range 2.0">+<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2"> +<link rel="home" href="index.html" title="Chapter 1. Range 2.0"><link rel="next" href="range/introduction.html" title="Introduction 简介">
</head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td> -<td align="center"><a href="../../../libraries.htm">Libraries</a></td>+<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td> </tr></table> <hr>-<div class="spirit-nav"><a accesskey="n" href="range/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
-<div class="chapter" lang="en">+<div class="spirit-nav"><a accesskey="n" href="range/introduction.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
+<div class="chapter"> <div class="titlepage"><div> <div><h2 class="title"> <a name="range"></a>Chapter 1. Range 2.0</h2></div> @@ -30,7 +30,7 @@ </h3></div></div><div><p class="copyright">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves</p></div>
<div><div class="legalnotice"> -<a name="id4850304"></a><p> +<a name="id5086955"></a><p>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt"; target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p> @@ -151,10 +151,10 @@ </p> </div><table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr> -<td align="left"><p><small>Last revised: June 23, 2010 at 03:11:25 GMT</small></p></td> +<td align="left"><p><small>Last revised: August 31, 2010 at 02:55:30 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> </tr></table> <hr>-<div class="spirit-nav"><a accesskey="n" href="range/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div> +<div class="spirit-nav"><a accesskey="n" href="range/introduction.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
</body> </html> =======================================--- /trunk/libs/range/doc/html/range/concepts/bidirectional_range.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/concepts/bidirectional_range.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Bidirectional Range 双向区间</title>-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../concepts.html" title="Range Concepts Range概念"> <link rel="prev" href="forward_range.html" title="Forward Range 前向区间"> <link rel="next" href="random_access_range.html" title="Random Access Range 随机访问区间">
@@ -13,22 +13,22 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="forward_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="random_access_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="forward_range.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random_access_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.concepts.bidirectional_range"></a><a class="link" href="bidirectional_range.html" title="Bidirectional Range 双向区间"> Bidirectional Range
双向区间</a> </h3></div></div></div> <a name="range.concepts.bidirectional_range.notation_______"></a><h5> -<a name="id4861576"></a> +<a name="id5097012"></a><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.notation_______">Notation
符号</a> </h5> @@ -68,7 +68,7 @@ </tbody> </table></div> <a name="range.concepts.bidirectional_range.description_______"></a><h5> -<a name="id4861688"></a> +<a name="id5097124"></a><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.description_______">Description
说明</a> </h5> @@ -81,7 +81,7 @@Traversal Iterator</a> 的所有要求。
</p><a name="range.concepts.bidirectional_range.refinement_of__________"></a><h5>
-<a name="id4861805"></a> +<a name="id5097242"></a><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.refinement_of__________">Refinement
of 强化自</a> </h5> @@ -89,7 +89,7 @@<a class="link" href="forward_range.html" title="Forward Range 前向区间">Forward Range</a>
</p><a name="range.concepts.bidirectional_range.associated_types_____________"></a><h5>
-<a name="id4861836"></a> +<a name="id5097272"></a><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.associated_types_____________">Associated
types 关联类型</a> </h5> @@ -142,7 +142,7 @@ </tbody> </table></div><a name="range.concepts.bidirectional_range.valid_expressions________________"></a><h5>
-<a name="id4862026"></a> +<a name="id5097462"></a><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.valid_expressions________________">Valid
expressions 有效表达式</a> </h5> @@ -227,7 +227,7 @@ </tbody> </table></div><a name="range.concepts.bidirectional_range.complexity_guarantees________________"></a><h5>
-<a name="id4862648"></a> +<a name="id5098084"></a><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.complexity_guarantees________________">Complexity
guarantees 复杂度保证</a> </h5> @@ -241,7 +241,7 @@则具有与 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> 相同的复杂度。
</p> <a name="range.concepts.bidirectional_range.invariants__________"></a><h5> -<a name="id4862930"></a> +<a name="id5098366"></a><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.invariants__________">Invariants
不变式</a> </h5> @@ -286,7 +286,7 @@ </tbody> </table></div> <a name="range.concepts.bidirectional_range.see_also_______"></a><h5> -<a name="id4863400"></a> +<a name="id5098837"></a><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.see_also_______">See also
参见</a> </h5> @@ -309,7 +309,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="forward_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="random_access_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="forward_range.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random_access_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/concepts/concept_checking.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/concepts/concept_checking.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Concept Checking 概念检查</title>-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../concepts.html" title="Range Concepts Range概念"> <link rel="prev" href="random_access_range.html" title="Random Access Range 随机访问区间"> <link rel="next" href="../reference.html" title="Reference 参考手册">
@@ -13,22 +13,22 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="random_access_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="random_access_range.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.concepts.concept_checking"></a><a class="link" href="concept_checking.html" title="Concept Checking 概念检查"> Concept Checking 概念检查</a>
</h3></div></div></div> <p>Each of the range concepts has a corresponding concept checking class in - the file <a href="../../../../boost/range/concepts.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>. + the file <a href="../../../../../../boost/range/concepts.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>. These classes may be used in conjunction with the <a href="../../../../../../libs/concept_check/index.html" target="_top">Boost Concept Check library</a> to ensure that the type of a template parameter is compatible with a range concept. If not, a meaningful compile time error
@@ -36,7 +36,7 @@traversal categories. For example, the following line checks that the type <code class="computeroutput"><span class="identifier">T</span></code> models the <a class="link" href="forward_range.html" title="Forward Range 前向区间">Forward Range</a> concept.<br> 每一个区间概念都有一个对应的概念检查类在 - <a href="../../../../boost/range/concepts.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> + <a href="../../../../../../boost/range/concepts.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> 中。 这些类可以和 <a href="../../../../../../libs/concept_check/index.html" target="_top">Boost Concept Check library</a> 一起使用,以确保模板参数的类型兼容于某个区间概念。如果不兼容,则产生一个编译期错误。 为区间概念所提供的检查是关于迭代器遍历类别的。例如,下面这行代码检查类型
@@ -66,29 +66,29 @@ <p>The following range concept checking classes are provided.<br> 本库提供了以下区间概念检查类:
</p> -<div class="itemizedlist"><ul type="disc"> -<li>- Class SinglePassRangeConcept checks for <a class="link" href="single_pass_range.html" title="Single Pass Range 单遍区间">Single - Pass Range</a><br> 类 SinglePassRangeConcept 用于检查 <a class="link" href="single_pass_range.html" title="Single Pass Range 单遍区间">Single
- Pass Range</a> -</li> -<li>- Class ForwardRangeConcept checks for <a class="link" href="forward_range.html" title="Forward Range 前向区间">Forward - Range</a><br> 类 ForwardRangeConcept 用于检查 <a class="link" href="forward_range.html" title="Forward Range 前向区间">Forward
- Range</a> -</li> -<li>- Class BidirectionalRangeConcept checks for <a class="link" href="bidirectional_range.html" title="Bidirectional Range 双向区间">Bidirectional - Range</a><br> 类 BidirectionalRangeConcept 用于检查 <a class="link" href="bidirectional_range.html" title="Bidirectional Range 双向区间">Bidirectional
- Range</a> -</li> -<li>- Class RandomAccessRangeConcept checks for <a class="link" href="random_access_range.html" title="Random Access Range 随机访问区间">Random - Access Range</a><br> 类 RandomAccessRangeConcept 用于检查 <a class="link" href="random_access_range.html" title="Random Access Range 随机访问区间">Random Access Range</a>
-</li> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem">+ Class SinglePassRangeConcept checks for <a class="link" href="single_pass_range.html" title="Single Pass Range 单遍区间">Single + Pass Range</a><br> 类 SinglePassRangeConcept 用于检查 <a class="link" href="single_pass_range.html" title="Single Pass Range 单遍区间">Single Pass Range</a>
+ </li> +<li class="listitem">+ Class ForwardRangeConcept checks for <a class="link" href="forward_range.html" title="Forward Range 前向区间">Forward + Range</a><br> 类 ForwardRangeConcept 用于检查 <a class="link" href="forward_range.html" title="Forward Range 前向区间">Forward
+ Range</a> + </li> +<li class="listitem">+ Class BidirectionalRangeConcept checks for <a class="link" href="bidirectional_range.html" title="Bidirectional Range 双向区间">Bidirectional + Range</a><br> 类 BidirectionalRangeConcept 用于检查 <a class="link" href="bidirectional_range.html" title="Bidirectional Range 双向区间">Bidirectional
+ Range</a> + </li> +<li class="listitem">+ Class RandomAccessRangeConcept checks for <a class="link" href="random_access_range.html" title="Random Access Range 随机访问区间">Random + Access Range</a><br> 类 RandomAccessRangeConcept 用于检查 + <a class="link" href="random_access_range.html" title="Random Access Range 随机访问区间">Random Access Range</a>
+ </li> </ul></div> <a name="range.concepts.concept_checking.see_also_______"></a><h5> -<a name="id4864834"></a> +<a name="id5100280"></a><a class="link" href="concept_checking.html#range.concepts.concept_checking.see_also_______">See also
参见</a> </h5> @@ -113,7 +113,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="random_access_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="random_access_range.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/concepts/forward_range.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/concepts/forward_range.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Forward Range 前向区间</title>-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../concepts.html" title="Range Concepts Range概念"> <link rel="prev" href="single_pass_range.html" title="Single Pass Range 单遍区间"> <link rel="next" href="bidirectional_range.html" title="Bidirectional Range 双向区间">
@@ -13,21 +13,21 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="single_pass_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bidirectional_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="single_pass_range.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bidirectional_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.concepts.forward_range"></a><a class="link" href="forward_range.html" title="Forward Range 前向区间"> Forward Range 前向区间</a>
</h3></div></div></div> <a name="range.concepts.forward_range.notation_______"></a><h5> -<a name="id4861070"></a> +<a name="id5044946"></a><a class="link" href="forward_range.html#range.concepts.forward_range.notation_______">Notation 符号</a>
</h5> <div class="informaltable"><table class="table"> @@ -66,7 +66,7 @@ </tbody> </table></div> <a name="range.concepts.forward_range.description_______"></a><h5> -<a name="id4861182"></a> +<a name="id5096618"></a><a class="link" href="forward_range.html#range.concepts.forward_range.description_______">Description
说明</a> </h5> @@ -77,7 +77,7 @@ Traversal Iterator</a> 的 model. </p> <a name="range.concepts.forward_range.refinement_of__________"></a><h5> -<a name="id4861308"></a> +<a name="id5096744"></a><a class="link" href="forward_range.html#range.concepts.forward_range.refinement_of__________">Refinement
of 强化自</a> </h5> @@ -85,7 +85,7 @@<a class="link" href="single_pass_range.html" title="Single Pass Range 单遍区间">Single Pass Range</a>
</p><a name="range.concepts.forward_range.associated_types_____________"></a><h5>
-<a name="id4861338"></a> +<a name="id5096775"></a><a class="link" href="forward_range.html#range.concepts.forward_range.associated_types_____________">Associated
types 关联类型</a> </h5> @@ -137,7 +137,7 @@ </tbody> </table></div> <a name="range.concepts.forward_range.see_also_______"></a><h5> -<a name="id4861518"></a> +<a name="id5096954"></a><a class="link" href="forward_range.html#range.concepts.forward_range.see_also_______">See also 参见</a>
</h5> <p> @@ -159,7 +159,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="single_pass_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bidirectional_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="single_pass_range.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bidirectional_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/concepts/overview.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/concepts/overview.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Overview 简介</title>-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../concepts.html" title="Range Concepts Range概念"> <link rel="prev" href="../concepts.html" title="Range Concepts Range概念"> <link rel="next" href="single_pass_range.html" title="Single Pass Range 单遍区间">
@@ -13,16 +13,16 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="../concepts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="single_pass_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="../concepts.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="single_pass_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.concepts.overview"></a><a class="link" href="overview.html" title="Overview 简介"> Overview 简介</a>
</h3></div></div></div> @@ -42,32 +42,32 @@a Range does not necessarily<br> 区间概念的动机是,有许多有用的、类似于容器的类型不能完全满足容器的所有要求,而很多算法可以依据这个有所简化的要求来编写。 具体的说,区间不要求:
</p> -<div class="itemizedlist"><ul type="disc"> -<li>- own the elements that can be accessed through it,<br> 拥有通过它来访问的元素,
- </li> -<li>- have copy semantics,<br> 具有复制语义,
- </li> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem">+ own the elements that can be accessed through it,<br> 拥有通过它来访问的元素,
+ </li> +<li class="listitem">+ have copy semantics,<br> 具有复制语义,
+ </li> </ul></div> <p>Because of the second requirement, a Range object must be passed by (const or non-const) reference in generic code.<br> 由于第二个要求,区间对象必须以(常量或非常量)引用的方式传入泛型代码。
</p> <p>- The operations that can be performed on a Range is dependent on the <a href="../../../../iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal" target="_top">traversal + The operations that can be performed on a Range is dependent on the <a href="../../../../../../libs/iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal" target="_top">traversal category</a> of the underlying iterator type. Therefore the range concepts are named to reflect which traversal category its iterators support. See also terminology and style guidelines. for more information about naming of ranges.<br> 一个区间上可以执行的操作取决于其底层迭代器类型的 - <a href="../../../../iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal" target="_top">遍历类别</a>。 + <a href="../../../../../../libs/iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal" target="_top">遍历类别</a>。 因此区间概念的命名正是反映了其迭代器所支持的遍历类别。有关区间命名的更多信息请见
术语及风格 一节。 </p> <p>- The concepts described below specifies associated types as <a href="../../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">metafunctions</a> + The concepts described below specifies associated types as <a href="../../../../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">metafunctions</a> and all functions as free-standing functions to allow for a layer of indirection.<br> - 下述概念以 <a href="../../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">元函数</a> + 下述概念以 <a href="../../../../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">元函数</a> 的方式给出关联类型,而且所有函数都是独立函数,以用于间接层。
</p> </div> @@ -81,7 +81,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="../concepts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="single_pass_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="../concepts.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="single_pass_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/concepts/random_access_range.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/concepts/random_access_range.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>Random Access Range 随机访问区间</title> -<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../concepts.html" title="Range Concepts Range概念"> <link rel="prev" href="bidirectional_range.html" title="Bidirectional Range 双向区间"> <link rel="next" href="concept_checking.html" title="Concept Checking 概念检查">
@@ -13,22 +13,22 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="bidirectional_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concept_checking.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="bidirectional_range.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concept_checking.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.concepts.random_access_range"></a><a class="link" href="random_access_range.html" title="Random Access Range 随机访问区间"> Random Access Range
随机访问区间</a> </h3></div></div></div> <a name="range.concepts.random_access_range.description_______"></a><h5> -<a name="id4863458"></a> +<a name="id5098895"></a><a class="link" href="random_access_range.html#range.concepts.random_access_range.description_______">Description
说明</a> </h5> @@ -39,7 +39,7 @@ Access Traversal Iterator</a> 的 model. </p><a name="range.concepts.random_access_range.refinement_of__________"></a><h5>
-<a name="id4863586"></a> +<a name="id5099022"></a><a class="link" href="random_access_range.html#range.concepts.random_access_range.refinement_of__________">Refinement
of 强化自</a> </h5> @@ -47,7 +47,7 @@<a class="link" href="bidirectional_range.html" title="Bidirectional Range 双向区间">Bidirectional Range</a>
</p><a name="range.concepts.random_access_range.valid_expressions________________"></a><h5>
-<a name="id4863617"></a> +<a name="id5099053"></a><a class="link" href="random_access_range.html#range.concepts.random_access_range.valid_expressions________________">Valid
expressions 有效表达式</a> </h5> @@ -93,7 +93,7 @@ </tr></tbody> </table></div><a name="range.concepts.random_access_range.expression_semantics________________"></a><h5>
-<a name="id4863773"></a> +<a name="id5099209"></a><a class="link" href="random_access_range.html#range.concepts.random_access_range.expression_semantics________________">Expression
semantics 表达式语义</a> </h5> @@ -145,7 +145,7 @@ </tr></tbody> </table></div><a name="range.concepts.random_access_range.complexity_guarantees________________"></a><h5>
-<a name="id4864079"></a> +<a name="id5099515"></a><a class="link" href="random_access_range.html#range.concepts.random_access_range.complexity_guarantees________________">Complexity
guarantees 复杂度保证</a> </h5> @@ -154,7 +154,7 @@<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> 在常量时间内完成。
</p> <a name="range.concepts.random_access_range.invariants__________"></a><h5> -<a name="id4864167"></a> +<a name="id5099603"></a><a class="link" href="random_access_range.html#range.concepts.random_access_range.invariants__________">Invariants
不变式</a> </h5> @@ -189,7 +189,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="bidirectional_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concept_checking.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="bidirectional_range.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concept_checking.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/concepts/single_pass_range.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/concepts/single_pass_range.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Single Pass Range 单遍区间</title>-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../concepts.html" title="Range Concepts Range概念">
<link rel="prev" href="overview.html" title="Overview 简介"><link rel="next" href="forward_range.html" title="Forward Range 前向区间">
@@ -13,22 +13,22 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="overview.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="forward_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="overview.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="forward_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.concepts.single_pass_range"></a><a class="link" href="single_pass_range.html" title="Single Pass Range 单遍区间"> Single Pass Range
单遍区间</a> </h3></div></div></div> <a name="range.concepts.single_pass_range.notation_______"></a><h5> -<a name="id4807617"></a> +<a name="id5045878"></a><a class="link" href="single_pass_range.html#range.concepts.single_pass_range.notation_______">Notation
符号</a> </h5> @@ -68,7 +68,7 @@ </tbody> </table></div> <a name="range.concepts.single_pass_range.description_______"></a><h5> -<a name="id4807734"></a> +<a name="id5045996"></a><a class="link" href="single_pass_range.html#range.concepts.single_pass_range.description_______">Description
说明</a> </h5> @@ -79,7 +79,7 @@ Pass Iterator</a> 的 model。 </p><a name="range.concepts.single_pass_range.associated_types_____________"></a><h5>
-<a name="id4807871"></a> +<a name="id5046132"></a><a class="link" href="single_pass_range.html#range.concepts.single_pass_range.associated_types_____________">Associated
types 关联类型</a> </h5> @@ -134,7 +134,7 @@ </tbody> </table></div><a name="range.concepts.single_pass_range.valid_expressions________________"></a><h5>
-<a name="id4808089"></a> +<a name="id5043387"></a><a class="link" href="single_pass_range.html#range.concepts.single_pass_range.valid_expressions________________">Valid
expressions 有效表达式</a> </h5> @@ -206,7 +206,7 @@ </tbody> </table></div><a name="range.concepts.single_pass_range.expression_semantics________________"></a><h5>
-<a name="id4859957"></a> +<a name="id5043762"></a><a class="link" href="single_pass_range.html#range.concepts.single_pass_range.expression_semantics________________">Expression
semantics 表达式语义</a> </h5> @@ -277,7 +277,7 @@ </tbody> </table></div><a name="range.concepts.single_pass_range.complexity_guarantees________________"></a><h5>
-<a name="id4860352"></a> +<a name="id5044179"></a><a class="link" href="single_pass_range.html#range.concepts.single_pass_range.complexity_guarantees________________">Complexity
guarantees 复杂度保证</a> </h5> @@ -287,7 +287,7 @@constant time.<br> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> 至多为分期线性时间,<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> 为分期常量时间。大多数情况下,你可以期望两个函数均为分期常量时间。
</p> <a name="range.concepts.single_pass_range.invariants__________"></a><h5> -<a name="id4860504"></a> +<a name="id5044342"></a><a class="link" href="single_pass_range.html#range.concepts.single_pass_range.invariants__________">Invariants
不变式</a> </h5> @@ -335,7 +335,7 @@ </tbody> </table></div> <a name="range.concepts.single_pass_range.see_also_______"></a><h5> -<a name="id4860994"></a> +<a name="id5044865"></a><a class="link" href="single_pass_range.html#range.concepts.single_pass_range.see_also_______">See also
参见</a> </h5> @@ -364,7 +364,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="overview.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="forward_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="overview.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="forward_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> ======================================= --- /trunk/libs/range/doc/html/range/concepts.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/concepts.html Wed Sep 1 05:47:13 2010 @@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Range Concepts Range概念</title>-<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0"><link rel="prev" href="introduction.html" title="Introduction 简介"> <link rel="next" href="concepts/overview.html" title="Overview 简介">
@@ -13,16 +13,16 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td> -<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/overview.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="introduction.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/overview.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="range.concepts"></a><a class="link" href="concepts.html" title="Range Concepts Range概念"> Range Concepts Range概念</a>
</h2></div></div></div> @@ -48,7 +48,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/overview.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="introduction.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/overview.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> ======================================= --- /trunk/libs/range/doc/html/range/examples.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/examples.html Wed Sep 1 05:47:13 2010 @@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Examples 示例</title>-<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0"><link rel="prev" href="library_headers/algorithm_extensions.html" title="Algorithm Extensions 算法扩展"> <link rel="next" href="mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame 由 Shunsuke Sogame 贡献)">
@@ -13,39 +13,51 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td> -<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="library_headers/algorithm_extensions.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="library_headers/algorithm_extensions.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="range.examples"></a><a class="link" href="examples.html" title="Examples 示例"> Examples 示例</a>
</h2></div></div></div> <p>Some examples are given in the accompanying test files:<br> 在随附的测试文件中给出了一些例子:
</p> -<div class="itemizedlist"><ul type="disc"> -<li>-<a href="http://www.boost.org/libs/range/test/string.cpp"; target="_top">string.cpp</a> - shows how to implement a container version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">()</span></code> that works with <code class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">char</span><span class="special">*</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">*</span></code>.<br><a href="http://www.boost.org/libs/range/test/string.cpp"; target="_top">string.cpp</a> - 示范如何实例一个容器版本的 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">()</span></code>,可用于 <code class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">char</span><span class="special">*</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">*</span></code>.
- </li> -<li>-<a href="http://www.boost.org/libs/range/test/algorithm_example.cpp"; target="_top">algorithm_example.cpp</a> - shows the replace example from the introduction.<br><a href="http://www.boost.org/libs/range/test/algorithm_example.cpp"; target="_top">algorithm_example.cpp</a> - 示范"简介"一节中的 replace 例子。
- </li>-<li><a href="http://www.boost.org/libs/range/test/iterator_range.cpp"; target="_top">iterator_range.cpp</a></li> -<li><a href="http://www.boost.org/libs/range/test/sub_range.cpp"; target="_top">sub_range.cpp</a></li> -<li><a href="http://www.boost.org/libs/range/test/iterator_pair.cpp"; target="_top">iterator_pair.cpp</a></li> -<li><a href="http://www.boost.org/libs/range/test/reversible_range.cpp"; target="_top">reversible_range.cpp</a></li> -<li><a href="http://www.boost.org/libs/range/test/std_container.cpp"; target="_top">std_container.cpp</a></li> -<li><a href="http://www.boost.org/libs/range/test/array.cpp"; target="_top">array.cpp</a></li>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem">+ <a href="http://www.boost.org/libs/range/test/string.cpp"; target="_top">string.cpp</a> + shows how to implement a container version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">()</span></code> that works with <code class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">char</span><span class="special">*</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">*</span></code>.<br> <a href="http://www.boost.org/libs/range/test/string.cpp"; target="_top">string.cpp</a> + 示范如何实例一个容器版本的 <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">()</span></code>,可用于 <code class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">char</span><span class="special">*</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">*</span></code>.
+ </li> +<li class="listitem">+ <a href="http://www.boost.org/libs/range/test/algorithm_example.cpp"; target="_top">algorithm_example.cpp</a> + shows the replace example from the introduction.<br> <a href="http://www.boost.org/libs/range/test/algorithm_example.cpp"; target="_top">algorithm_example.cpp</a> + 示范"简介"一节中的 replace 例子。
+ </li> +<li class="listitem">+ <a href="http://www.boost.org/libs/range/test/iterator_range.cpp"; target="_top">iterator_range.cpp</a>
+ </li> +<li class="listitem">+ <a href="http://www.boost.org/libs/range/test/sub_range.cpp"; target="_top">sub_range.cpp</a>
+ </li> +<li class="listitem">+ <a href="http://www.boost.org/libs/range/test/iterator_pair.cpp"; target="_top">iterator_pair.cpp</a>
+ </li> +<li class="listitem">+ <a href="http://www.boost.org/libs/range/test/reversible_range.cpp"; target="_top">reversible_range.cpp</a>
+ </li> +<li class="listitem">+ <a href="http://www.boost.org/libs/range/test/std_container.cpp"; target="_top">std_container.cpp</a>
+ </li> +<li class="listitem">+ <a href="http://www.boost.org/libs/range/test/array.cpp"; target="_top">array.cpp</a>
+ </li> </ul></div> </div><table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
@@ -58,7 +70,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="library_headers/algorithm_extensions.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="library_headers/algorithm_extensions.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> ======================================= --- /trunk/libs/range/doc/html/range/faq.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/faq.html Wed Sep 1 05:47:13 2010 @@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>FAQ</title>-<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0"><link rel="prev" href="portability.html" title="Portability 可移植性"> <link rel="next" href="history_ack.html" title="History and Acknowledgement 历史和鸣谢">
@@ -13,16 +13,16 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td> -<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="portability.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="history_ack.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="portability.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="history_ack.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> <a name="range.faq"></a><a class="link" href="faq.html" title="FAQ">FAQ</a> </h2></div></div></div> @@ -34,90 +34,54 @@和 <code class="computeroutput"><span class="identifier">range_const_iterator</span><span class="special"><</span><span class="identifier">C</span><span class="special">>::</span><span class="identifier">type</span></code>
没有区别。</strong></span></em></span> </p> -<div class="blockquote"><blockquote class="blockquote"> -<p> - </p> -<p>- In general it is not possible nor desirable to find a corresponding <code class="computeroutput"><span class="identifier">const_iterator</span></code>. When it is possible to - come up with one, the client might choose to construct a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">const_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">></span></code> - object.<br> 通常没有可能也不值得找到一个 <code class="computeroutput"><span class="identifier">const_iterator</span></code>. 如果要得到一个,用户可以选择构造一个 - <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">const_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">></span></code>
- 对象。 - </p> -<p> - </p> -</blockquote></div> -<div class="blockquote"><blockquote class="blockquote"> -<p> - </p> -<p>- Note that an <a class="link" href="reference/utilities/iterator_range.html" title="Class iterator_range"><code class="computeroutput"><span class="identifier">iterator_range</span></code></a> is somewhat more - convenient than a <code class="computeroutput"><span class="identifier">pair</span></code> - and that a <a class="link" href="reference/utilities/sub_range.html" title="Class sub_range"><code class="computeroutput"><span class="identifier">sub_range</span></code></a> does propagate const-ness.<br> - 注意,<a class="link" href="reference/utilities/iterator_range.html" title="Class iterator_range"><code class="computeroutput"><span class="identifier">iterator_range</span></code></a> 要比 <code class="computeroutput"><span class="identifier">pair</span></code> 稍微方便一点,而 <a class="link" href="reference/utilities/sub_range.html" title="Class sub_range"><code class="computeroutput"><span class="identifier">sub_range</span></code></a> 则可以传播常量性。
- </p> -<p> - </p> -</blockquote></div> +<div class="blockquote"><blockquote class="blockquote"><p>+ In general it is not possible nor desirable to find a corresponding <code class="computeroutput"><span class="identifier">const_iterator</span></code>. When it is possible to + come up with one, the client might choose to construct a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">const_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">></span></code> object.<br> 通常没有可能也不值得找到一个 + <code class="computeroutput"><span class="identifier">const_iterator</span></code>. 如果要得到一个,用户可以选择构造一个 + <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">const_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">></span></code>
+ 对象。 + </p></blockquote></div> +<div class="blockquote"><blockquote class="blockquote"><p>+ Note that an <a class="link" href="reference/utilities/iterator_range.html" title="Class iterator_range"><code class="computeroutput"><span class="identifier">iterator_range</span></code></a> is somewhat more + convenient than a <code class="computeroutput"><span class="identifier">pair</span></code> and + that a <a class="link" href="reference/utilities/sub_range.html" title="Class sub_range"><code class="computeroutput"><span class="identifier">sub_range</span></code></a> does propagate const-ness.<br> + 注意,<a class="link" href="reference/utilities/iterator_range.html" title="Class iterator_range"><code class="computeroutput"><span class="identifier">iterator_range</span></code></a> 要比 <code class="computeroutput"><span class="identifier">pair</span></code> 稍微方便一点,而 <a class="link" href="reference/utilities/sub_range.html" title="Class sub_range"><code class="computeroutput"><span class="identifier">sub_range</span></code></a> 则可以传播常量性。
+ </p></blockquote></div> <p>2. <span class="emphasis"><em><span class="bold"><strong>Why is there not supplied more types or more functions?<br> 为什么不提供更多的类型或函数?</strong></span></em></span>
</p> -<div class="blockquote"><blockquote class="blockquote"> -<p> - </p> -<p>- The library has been kept small because its current interface will serve - most purposes. If and when a genuine need arises for more functionality, - it can be implemented.<br> 本库保持比较小是因为它当前的接口可以有更多的用途。如果真的需要更多的功能,它也可以实现。
- </p> -<p> - </p> -</blockquote></div> +<div class="blockquote"><blockquote class="blockquote"><p>+ The library has been kept small because its current interface will serve + most purposes. If and when a genuine need arises for more functionality, + it can be implemented.<br> 本库保持比较小是因为它当前的接口可以有更多的用途。如果真的需要更多的功能,它也可以实现。
+ </p></blockquote></div> <p>3. <span class="emphasis"><em><span class="bold"><strong>How should I implement generic algorithms for ranges?<br> 我如何实现使用区间的泛型算法?</strong></span></em></span>
</p> -<div class="blockquote"><blockquote class="blockquote"> -<p> - </p> -<p>- One should always start with a generic algorithm that takes two iterators - (or more) as input. Then use Boost.Range to build handier versions on top - of the iterator based algorithm. Please notice that once the range version - of the algorithm is done, it makes sense not to expose the iterator version - in the public interface.<br> 你应该从接受两个(或多个)迭代器作为输入的泛型算法开始。然后使用 - Boost.Range 在算法所基于的迭代器之上来构建一个手工版本。 - 请注意,一旦实现了算法的区间版本,就不要再将迭代器版本公开在公有接口上。
- </p> -<p> - </p> -</blockquote></div> +<div class="blockquote"><blockquote class="blockquote"><p>+ One should always start with a generic algorithm that takes two iterators + (or more) as input. Then use Boost.Range to build handier versions on top + of the iterator based algorithm. Please notice that once the range version + of the algorithm is done, it makes sense not to expose the iterator version + in the public interface.<br> 你应该从接受两个(或多个)迭代器作为输入的泛型算法开始。然后使用 + Boost.Range 在算法所基于的迭代器之上来构建一个手工版本。 + 请注意,一旦实现了算法的区间版本,就不要再将迭代器版本公开在公有接口上。
+ </p></blockquote></div> <p>4. <span class="emphasis"><em><span class="bold"><strong>Why is there no Incrementable Range concept?<br> 为什么没有递增区间的概念?</strong></span></em></span>
</p> -<div class="blockquote"><blockquote class="blockquote"> -<p> - </p> -<p>- Even though we speak of incrementable iterators, it would not make much - sense for ranges; for example, we cannot determine the size and emptiness - of a range since we cannot even compare its iterators.<br> 虽然我们有讨论递增迭代器,但是不太合适讨论这类区间;例如,我们无法确定区间的大小以及区间是否为空,因为我们不能比较这种迭代器。
- </p> -<p> - </p> -</blockquote></div> -<div class="blockquote"><blockquote class="blockquote"> -<p> - </p> -<p>- Note also that incrementable iterators are derived from output iterators - and so there exist no output range.<br> 还应注意,递增迭代器派生自输出迭代器,所以也不存在输出区间。
- </p> -<p> - </p> -</blockquote></div> +<div class="blockquote"><blockquote class="blockquote"><p>+ Even though we speak of incrementable iterators, it would not make much sense + for ranges; for example, we cannot determine the size and emptiness of a + range since we cannot even compare its iterators.<br> 虽然我们有讨论递增迭代器,但是不太合适讨论这类区间;例如,我们无法确定区间的大小以及区间是否为空,因为我们不能比较这种迭代器。
+ </p></blockquote></div> +<div class="blockquote"><blockquote class="blockquote"><p>+ Note also that incrementable iterators are derived from output iterators + and so there exist no output range.<br> 还应注意,递增迭代器派生自输出迭代器,所以也不存在输出区间。
+ </p></blockquote></div> </div><table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
<td align="left"></td> @@ -129,7 +93,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="portability.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="history_ack.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="portability.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="history_ack.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/history_ack.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/history_ack.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>History and Acknowledgement 历史和鸣谢</title> -<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0"> <link rel="prev" href="faq.html" title="FAQ"> </head> @@ -12,21 +12,21 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td> -<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="faq.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a> +<a accesskey="p" href="faq.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="range.history_ack"></a><a class="link" href="history_ack.html" title="History and Acknowledgement 历史和鸣谢"> History and Acknowledgement 历史和鸣谢</a>
</h2></div></div></div> <a name="range.history_ack.version_1___before_boost_1_43"></a><h4> -<a name="id5038286"></a> +<a name="id5275967"></a><a class="link" href="history_ack.html#range.history_ack.version_1___before_boost_1_43">Version 1 -
before Boost 1.43</a> </h4> @@ -58,28 +58,28 @@ <p> Special thanks goes to </p> -<div class="itemizedlist"><ul type="disc"> -<li> - Pavol Droba for help with documentation and implementation - </li> -<li> - Pavel Vozenilek for help with porting the library - </li> -<li> - Jonathan Turkanis and John Torjo for help with documentation - </li> -<li> - Hartmut Kaiser for being review manager - </li> -<li>- Jonathan Turkanis for porting the lib (as far sa possible) to vc6 and vc7.
- </li> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem"> + Pavol Droba for help with documentation and implementation + </li> +<li class="listitem"> + Pavel Vozenilek for help with porting the library + </li> +<li class="listitem"> + Jonathan Turkanis and John Torjo for help with documentation + </li> +<li class="listitem"> + Hartmut Kaiser for being review manager + </li> +<li class="listitem">+ Jonathan Turkanis for porting the lib (as far sa possible) to vc6 and vc7.
+ </li> </ul></div> <p>The concept checks and their documentation was provided by Daniel Walker.
</p> <a name="range.history_ack.version_2___boost_1_43_and_beyond"></a><h4> -<a name="id4806669"></a> +<a name="id5276087"></a><a class="link" href="history_ack.html#range.history_ack.version_2___boost_1_43_and_beyond">Version
2 - Boost 1.43 and beyond</a> </h4> @@ -92,40 +92,48 @@ stages of this library. </p> <p>+ Prior to Boost.RangeEx there had been a number of Range library implementations, + these include library implementations by Eric Niebler, Adobe, Shunsuke Sogame + etc. Eric Niebler contributed the Range Adaptor idea which is arguably the + single biggest innovation in this library. Inevitably a great deal of commonality + evolved in each of these libraries, but a considerable amount of effort was
+ expended to learn from all of the divergent techniques. + </p> +<p>The people in the following list all made contributions in the form of reviews,
user feedback, design suggestions, or defect detection: </p> -<div class="itemizedlist"><ul type="disc"> -<li>- Thorsten Ottosen: review management, design advice, documentation feedback
- </li> -<li> - Eric Niebler: feedback - </li> -<li> - Joel de Guzman: review - </li> -<li> - Mathias Gaunard: review - </li> -<li> - David Abrahams: implementation advice - </li> -<li> - Robert Jones: defect reports, usage feedback - </li> -<li> - Sean Parent: contributed experience from the Adobe range library - </li> -<li> - Arno Schoedl: implementations, and review - </li> -<li> - Rogier van Dalen: review - </li> -<li> - Vincente Botet: review, documentation feedback - </li> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem">+ Thorsten Ottosen: review management, design advice, documentation feedback
+ </li> +<li class="listitem"> + Eric Niebler: early implementation, and review feedback + </li> +<li class="listitem"> + Joel de Guzman: review + </li> +<li class="listitem"> + Mathias Gaunard: review + </li> +<li class="listitem"> + David Abrahams: implementation advice + </li> +<li class="listitem"> + Robert Jones: defect reports, usage feedback + </li> +<li class="listitem"> + Sean Parent: contributed experience from the Adobe range library + </li> +<li class="listitem"> + Arno Schoedl: implementations, and review + </li> +<li class="listitem"> + Rogier van Dalen: review + </li> +<li class="listitem"> + Vincente Botet: review, documentation feedback + </li> </ul></div> <p>Regardless of how I write this section it will never truly fairly capture the
@@ -142,7 +150,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="faq.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a> +<a accesskey="p" href="faq.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/introduction.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/introduction.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Introduction 简介</title>-<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0"><link rel="prev" href="../index.html" title="Chapter 1. Range 2.0"> <link rel="next" href="concepts.html" title="Range Concepts Range概念">
@@ -13,16 +13,16 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td> -<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>+<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="range.introduction"></a><a class="link" href="introduction.html" title="Introduction 简介"> Introduction 简介</a>
</h2></div></div></div> @@ -65,92 +65,61 @@ <p>The main advantages are<br> 主要的好处有:
</p> -<div class="itemizedlist"><ul type="disc"> -<li>- simpler implementation and specification of generic range algorithms<br> - 泛型的区间算法的更简单的实现和规范
- </li> -<li>- more flexible, compact and maintainable client code<br> 更灵活、紧凑和可维护的客户代码
- </li> -<li>- safe use of built-in arrays (for legacy code; why else would you use built-in - arrays?)<br> 安全使用内建数组(对于遗留代码;你为什么还要使用内建数据?)
- </li> +<div class="itemizedlist"><ul class="itemizedlist" type="disc"> +<li class="listitem">+ simpler implementation and specification of generic range algorithms<br> + 泛型的区间算法的更简单的实现和规范
+ </li> +<li class="listitem">+ more flexible, compact and maintainable client code<br> 更灵活、紧凑和可维护的客户代码
+ </li> +<li class="listitem">+ safe use of built-in arrays (for legacy code; why else would you use built-in + arrays?)<br> 安全使用内建数组(对于遗留代码;你为什么还要使用内建数据?)
+ </li> </ul></div>+<a name="range.introduction.example___iterate_over_the_values_in_a_map____map_____________________"></a><h4>
+<a name="id5047881"></a>+ <a class="link" href="introduction.html#range.introduction.example___iterate_over_the_values_in_a_map____map_____________________">Example + - Iterate over the values in a map 对map中的值进行迭代</a>
+ </h4> <p>- Below are given a small example (the complete example can be found <a href="http://www.boost.org/libs/range/test/algorithm_example.cpp"; target="_top">here</a> - ):<br> 下面给出一个简短的例子(完整的例子代码请见 <a href="http://www.boost.org/libs/range/test/algorithm_example.cpp"; target="_top">这里</a>
- ): + +</p>+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">;</span> +<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span> +<span class="identifier">for_each</span><span class="special">(</span> <span class="identifier">my_map</span> <span class="special">|</span> <span class="identifier">map_values</span><span class="special">,</span> <span class="identifier">fn</span> <span class="special">);</span>
+</pre> +<p> </p>+<a name="range.introduction.example___iterate_over_the_keys_in_a_map____map_____________________"></a><h4>
+<a name="id5045313"></a>+ <a class="link" href="introduction.html#range.introduction.example___iterate_over_the_keys_in_a_map____map_____________________">Example + - Iterate over the keys in a map 对map中的键进行迭代</a>
+ </h4> <p> </p> -<pre class="programlisting"><span class="comment">//-</span><span class="comment">// example: extracting bounds in a generic algorithm -</span><span class="comment">// 例子:在泛型算法中取出边界
-</span><span class="comment">//-</span><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardReadableRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span> -<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="identifier">ForwardReadableRange</span> <span class="special">>::</span><span class="identifier">type</span> -<span class="identifier">find</span><span class="special">(</span> <span class="identifier">ForwardReadableRange</span><span class="special">&</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">value</span> <span class="special">)</span>
-<span class="special">{</span>- <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">value</span> <span class="special">);</span>
-<span class="special">}</span> --<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardReadableRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span> -<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="keyword">const</span> <span class="identifier">ForwardReadableRange</span> <span class="special">>::</span><span class="identifier">type</span> -<span class="identifier">find</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">ForwardReadableRange</span><span class="special">&</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">value</span> <span class="special">)</span>
-<span class="special">{</span>- <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">value</span> <span class="special">);</span>
-<span class="special">}</span> - -<span class="comment">// -</span><span class="comment">// replace first value and return its index-</span><span class="comment">// 替代第一个值并返回其索引
-</span><span class="comment">//-</span><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardReadableWriteableRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span> -<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_size</span><span class="special"><</span> <span class="identifier">ForwardReadableWriteableRange</span> <span class="special">>::</span><span class="identifier">type</span> -<span class="identifier">my_generic_replace</span><span class="special">(</span> <span class="identifier">ForwardReadableWriteableRange</span><span class="special">&</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">value</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">replacement</span> <span class="special">)</span>
-<span class="special">{</span>- <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="identifier">ForwardReadableWriteableRange</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">found</span> <span class="special">=</span> <span class="identifier">find</span><span class="special">(</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">value</span> <span class="special">);</span>
-- <span class="keyword">if</span><span class="special">(</span> <span class="identifier">found</span> <span class="special">!=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">)</span> <span class="special">)</span> - <span class="special">*</span><span class="identifier">found</span> <span class="special">=</span> <span class="identifier">replacement</span><span class="special">;</span> - <span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">distance</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">found</span> <span class="special">);</span>
-<span class="special">}</span> - -<span class="comment">// -</span><span class="comment">// usage 用法 -</span><span class="comment">//-</span><span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">N</span> <span class="special">=</span> <span class="number">5</span><span class="special">;</span> -<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">my_vector</span><span class="special">;</span> -<span class="keyword">int</span> <span class="identifier">values</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span> <span class="special">};</span>
--<span class="identifier">my_vector</span><span class="special">.</span><span class="identifier">assign</span><span class="special">(</span> <span class="identifier">values</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> <span class="identifier">values</span> <span class="special">)</span> <span class="special">);</span> -<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">iterator</span> <span class="identifier">iterator</span><span class="special">;</span> -<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">iterator</span><span class="special">,</span><span class="identifier">iterator</span><span class="special">></span> <span class="identifier">my_view</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">my_vector</span> <span class="special">),</span> - <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">my_vector</span> <span class="special">)</span> <span class="special">+</span> <span class="identifier">N</span> <span class="special">);</span> -<span class="keyword">char</span> <span class="identifier">str_val</span><span class="special">[]</span> <span class="special">=</span> <span class="string">"a string"</span><span class="special">;</span> -<span class="keyword">char</span><span class="special">*</span> <span class="identifier">str</span> <span class="special">=</span> <span class="identifier">str_val</span><span class="special">;</span>
--<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">my_generic_replace</span><span class="special">(</span> <span class="identifier">my_vector</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="number">2</span> <span class="special">);</span> -<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">my_generic_replace</span><span class="special">(</span> <span class="identifier">my_view</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="number">2</span> <span class="special">);</span> -<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">my_generic_replace</span><span class="special">(</span> <span class="identifier">str</span><span class="special">,</span> <span class="char">'a'</span><span class="special">,</span> <span class="char">'b'</span> <span class="special">);</span>
- -<span class="comment">// prints '3', '5' and '0' -</span></pre>+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">;</span> +<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span> +<span class="identifier">for_each</span><span class="special">(</span> <span class="identifier">my_map</span> <span class="special">|</span> <span class="identifier">map_keys</span><span class="special">,</span> <span class="identifier">fn</span> <span class="special">);</span>
+</pre> <p> </p>+<a name="range.introduction.example___push_the_even_values_from_a_map_in_reverse_order_into_the_container__code__phrase_role__identifier__target__phrase___code_____map_____________________________________code__phrase_role__identifier__target__phrase___code_"></a><h4>
+<a name="id5045450"></a>+ <a class="link" href="introduction.html#range.introduction.example___push_the_even_values_from_a_map_in_reverse_order_into_the_container__code__phrase_role__identifier__target__phrase___code_____map_____________________________________code__phrase_role__identifier__target__phrase___code_">Example + - Push the even values from a map in reverse order into the container <code class="computeroutput"><span class="identifier">target</span></code> 将map中的偶数值以反序插入容器<code class="computeroutput"><span class="identifier">target</span></code></a>
+ </h4> <p>- By using the free-standing functions and <a href="../../../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">metafunctions</a>, - the code automatically works for all the types supported by this library; now - and in the future. Notice that we have to provide two versions of <code class="computeroutput"><span class="identifier">find</span><span class="special">()</span></code> since - we cannot forward a non-const rvalue with reference arguments (see this article - about <a href="http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm"; target="_top">The - Forwarding Problem</a> ).<br> 通过使用独立函数和 <a href="../../../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">metafunctions</a>,这些代码可以自动用于本库支持的所有类型;现在以及将来。 - 注意,我们必须提供两个版本的 <code class="computeroutput"><span class="identifier">find</span><span class="special">()</span></code>,因为我们不能将一个非常量右值前转到引用参数(有关 - <a href="http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm"; target="_top">The - Forwarding Problem</a>,请见这篇文章)。
+ +</p>+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">;</span> +<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span> +<span class="comment">// Assume that is_even is a predicate that has been implemented elsewhere... +</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">target</span><span class="special">,</span> <span class="identifier">my_map</span> <span class="special">|</span> <span class="identifier">map_values</span> <span class="special">|</span> <span class="identifier">filtered</span><span class="special">(</span><span class="identifier">is_even</span><span class="special">())</span> <span class="special">|</span> <span class="identifier">reversed</span><span class="special">);</span>
+</pre> +<p> </p> </div><table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision"; width="100%"><tr>
@@ -163,7 +132,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="../index.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/library_headers/adaptors.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/library_headers/adaptors.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Adaptors 适配器</title>-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../library_headers.html" title="Library Headers 头文件">
<link rel="prev" href="general.html" title="General 概述"> <link rel="next" href="algorithm.html" title="Algorithm 算法"> @@ -13,16 +13,16 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="general.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="general.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.library_headers.adaptors"></a><a class="link" href="adaptors.html" title="Adaptors 适配器"> Adaptors 适配器</a>
</h3></div></div></div> @@ -226,7 +226,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="general.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="general.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/library_headers/algorithm.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/library_headers/algorithm.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Algorithm 算法</title>-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../library_headers.html" title="Library Headers 头文件"> <link rel="prev" href="adaptors.html" title="Adaptors 适配器"> <link rel="next" href="algorithm_extensions.html" title="Algorithm Extensions 算法扩展">
@@ -13,16 +13,16 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="adaptors.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm_extensions.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="adaptors.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm_extensions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.library_headers.algorithm"></a><a class="link" href="algorithm.html" title="Algorithm 算法"> Algorithm 算法</a>
</h3></div></div></div> @@ -677,7 +677,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="adaptors.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm_extensions.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="adaptors.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm_extensions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> =======================================--- /trunk/libs/range/doc/html/range/library_headers/algorithm_extensions.html Tue Jun 22 21:13:43 2010 +++ /trunk/libs/range/doc/html/range/library_headers/algorithm_extensions.html Wed Sep 1 05:47:13 2010
@@ -2,9 +2,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>Algorithm Extensions 算法扩展</title>-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">-<link rel="start" href="../../index.html" title="Chapter 1. Range 2.0"> +<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">+<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0"> <link rel="up" href="../library_headers.html" title="Library Headers 头文件">
<link rel="prev" href="algorithm.html" title="Algorithm 算法"> <link rel="next" href="../examples.html" title="Examples 示例"> @@ -13,16 +13,16 @@ <table cellpadding="2" width="100%"><tr><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>-<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td> +<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td> <td align="center"><a href="http://www.boost.org/users/people.html";>People</a></td> <td align="center"><a href="http://www.boost.org/users/faq.html";>FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td> </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="algorithm.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> -<div class="section" lang="en"> +<div class="section"> <div class="titlepage"><div><div><h3 class="title"><a name="range.library_headers.algorithm_extensions"></a><a class="link" href="algorithm_extensions.html" title="Algorithm Extensions 算法扩展"> Algorithm
Extensions 算法扩展</a> @@ -166,7 +166,7 @@ </tr></table> <hr> <div class="spirit-nav">-<a accesskey="p" href="algorithm.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a> +<a accesskey="p" href="algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div> </body> </html> ======================================= ***Additional files exist in this changeset.***