|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r80740 - in branches/release: . boost boost/algorithm boost/algorithm/cxx11 boost/algorithm/searching boost/algorithm/searching/detail boost/algorithm/string boost/algorithm/string/detail boost/archive boost/bimap boost/chrono/detail boost/chrono/io boost/chrono/io_v1 boost/config boost/config/compiler boost/config/stdlib boost/container boost/context boost/date_time boost/detail boost/dynamic_bitset boost/filesystem boost/function boost/functional boost/functional/overloaded_function boost/fusion boost/geometry boost/geometry/algorithms boost/geometry/arithmetic boost/geometry/core boost/geometry/domains boost/geometry/geometries boost/geometry/io boost/geometry/io/dsv boost/geometry/iterators boost/geometry/multi boost/geometry/policies boost/geometry/strategies boost/geometry/util boost/geometry/views boost/gil boost/graph boost/graph/detail boost/graph/distributed/adjlist boost/heap boost/icl boost/integer boost/interprocess boost/intrusive boost/io boost/iostreams boost/iterator boost/local_function boost/locale boost/math boost/move boost/msm boost/msm/back boost/msm/front boost/msm/front/detail boost/msm/front/euml boost/msm/mpl_graph boost/numeric/ublas boost/parameter boost/pending boost/pool boost/preprocessor boost/program_options boost/property_tree boost/python boost/random boost/range boost/ratio boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/statechart boost/system boost/thread boost/tr1 boost/type_traits boost/typeof boost/unordered boost/utility boost/uuid boost/variant boost/wave boost/xpressive doc libs libs/algorithm/doc libs/algorithm/example libs/algorithm/minmax libs/algorithm/string libs/algorithm/string/doc libs/algorithm/test libs/algorithm/test/search_test_data libs/array libs/array/test libs/bimap libs/chrono/src libs/chrono/test/duration libs/chrono/test/io libs/chrono/test/time_point libs/chrono/test/traits libs/config libs/config/doc libs/config/test libs/container libs/context libs/date_time libs/date_time/src/gregorian libs/detail libs/filesystem libs/function libs/functional libs/functional/overloaded_function libs/fusion libs/geometry libs/geometry/doc libs/geometry/doc/concept libs/geometry/doc/doxy libs/geometry/doc/generated libs/geometry/doc/html libs/geometry/doc/reference libs/geometry/doc/src libs/geometry/example libs/geometry/test libs/graph/doc libs/graph/example libs/graph/test libs/graph_parallel libs/heap libs/icl libs/icl/doc libs/icl/doc/html libs/icl/doc/html/boost/icl libs/icl/doc/html/header/boost/icl libs/icl/test libs/icl/test/test_doc_code_ libs/integer libs/interprocess libs/intrusive libs/io libs/io/doc libs/iostreams libs/iostreams/src libs/iostreams/test libs/iterator libs/local_function libs/locale libs/math libs/math/doc/sf_and_dist libs/math/test libs/move libs/mpi/build libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/msm libs/numeric/ublas libs/numeric/ublas/doc libs/parameter/doc/html libs/phoenix/doc libs/phoenix/doc/examples libs/pool libs/preprocessor libs/program_options libs/property_tree libs/python libs/random/test libs/range libs/ratio libs/regex libs/scope_exit libs/serialization libs/serialization/example libs/serialization/src libs/serialization/test libs/signals libs/signals/src libs/signals2 libs/signals2/doc libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/statechart libs/static_assert libs/system libs/thread libs/timer libs/tr1 libs/type_traits libs/typeof/doc libs/unordered libs/utility libs/utility/identity_type libs/utility/swap/test libs/uuid libs/wave more status tools tools/bcp tools/boostbook tools/build/v2 tools/inspect tools/quickbook tools/regression tools/regression/src tools/release tools/wave
From: jewillco_at_[hidden]
Date: 2012-09-28 14:34:16
Author: jewillco
Date: 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
New Revision: 80740
URL: http://svn.boost.org/trac/boost/changeset/80740
Log:
Merged Boost.Graph changes from trunk
Properties modified:
branches/release/ (props changed)
branches/release/INSTALL (props changed)
branches/release/Jamroot (props changed)
branches/release/LICENSE_1_0.txt (props changed)
branches/release/boost/ (props changed)
branches/release/boost-build.jam (props changed)
branches/release/boost.css (props changed)
branches/release/boost.png (props changed)
branches/release/boost/algorithm/ (props changed)
branches/release/boost/algorithm/clamp.hpp (props changed)
branches/release/boost/algorithm/cxx11/all_of.hpp (props changed)
branches/release/boost/algorithm/cxx11/any_of.hpp (props changed)
branches/release/boost/algorithm/cxx11/copy_if.hpp (props changed)
branches/release/boost/algorithm/cxx11/copy_n.hpp (props changed)
branches/release/boost/algorithm/cxx11/find_if_not.hpp (props changed)
branches/release/boost/algorithm/cxx11/iota.hpp (props changed)
branches/release/boost/algorithm/cxx11/is_partitioned.hpp (props changed)
branches/release/boost/algorithm/cxx11/is_permutation.hpp (props changed)
branches/release/boost/algorithm/cxx11/is_sorted.hpp (props changed)
branches/release/boost/algorithm/cxx11/none_of.hpp (props changed)
branches/release/boost/algorithm/cxx11/one_of.hpp (props changed)
branches/release/boost/algorithm/cxx11/partition_copy.hpp (props changed)
branches/release/boost/algorithm/cxx11/partition_point.hpp (props changed)
branches/release/boost/algorithm/hex.hpp (props changed)
branches/release/boost/algorithm/searching/ (props changed)
branches/release/boost/algorithm/searching/boyer_moore.hpp (props changed)
branches/release/boost/algorithm/searching/boyer_moore_horspool.hpp (props changed)
branches/release/boost/algorithm/searching/detail/bm_traits.hpp (props changed)
branches/release/boost/algorithm/searching/detail/debugging.hpp (props changed)
branches/release/boost/algorithm/searching/knuth_morris_pratt.hpp (props changed)
branches/release/boost/algorithm/string/ (props changed)
branches/release/boost/algorithm/string/detail/case_conv.hpp (props changed)
branches/release/boost/algorithm/string/detail/classification.hpp (props changed)
branches/release/boost/algorithm/string/find.hpp (props changed)
branches/release/boost/archive/ (props changed)
branches/release/boost/array.hpp (props changed)
branches/release/boost/bimap/ (props changed)
branches/release/boost/bimap.hpp (props changed)
branches/release/boost/chrono/detail/ (props changed)
branches/release/boost/chrono/io/ (props changed)
branches/release/boost/chrono/io_v1/ (props changed)
branches/release/boost/concept_check.hpp (props changed)
branches/release/boost/config/ (props changed)
branches/release/boost/config.hpp (props changed)
branches/release/boost/config/compiler/ (props changed)
branches/release/boost/config/stdlib/ (props changed)
branches/release/boost/config/suffix.hpp (props changed)
branches/release/boost/container/ (props changed)
branches/release/boost/context/ (props changed)
branches/release/boost/cregex.hpp (props changed)
branches/release/boost/cstdint.hpp (props changed)
branches/release/boost/current_function.hpp (props changed)
branches/release/boost/date_time/ (props changed)
branches/release/boost/detail/ (props changed)
branches/release/boost/detail/fenv.hpp (props changed)
branches/release/boost/detail/interlocked.hpp (props changed)
branches/release/boost/detail/scoped_enum_emulation.hpp (props changed)
branches/release/boost/dynamic_bitset/dynamic_bitset.hpp (props changed)
branches/release/boost/filesystem/ (props changed)
branches/release/boost/filesystem.hpp (props changed)
branches/release/boost/function/ (props changed)
branches/release/boost/function/function_template.hpp (props changed)
branches/release/boost/functional/ (props changed)
branches/release/boost/functional/overloaded_function/ (props changed)
branches/release/boost/functional/overloaded_function.hpp (props changed)
branches/release/boost/fusion/ (props changed)
branches/release/boost/geometry/ (props changed)
branches/release/boost/geometry/algorithms/ (props changed)
branches/release/boost/geometry/arithmetic/ (props changed)
branches/release/boost/geometry/core/ (props changed)
branches/release/boost/geometry/domains/ (props changed)
branches/release/boost/geometry/geometries/ (props changed)
branches/release/boost/geometry/geometry.hpp (props changed)
branches/release/boost/geometry/io/ (props changed)
branches/release/boost/geometry/io/dsv/ (props changed)
branches/release/boost/geometry/iterators/ (props changed)
branches/release/boost/geometry/multi/ (props changed)
branches/release/boost/geometry/policies/ (props changed)
branches/release/boost/geometry/strategies/ (props changed)
branches/release/boost/geometry/util/ (props changed)
branches/release/boost/geometry/views/ (props changed)
branches/release/boost/gil/ (props changed)
branches/release/boost/graph/ (props changed)
branches/release/boost/heap/ (props changed)
branches/release/boost/icl/ (props changed)
branches/release/boost/integer/ (props changed)
branches/release/boost/integer.hpp (props changed)
branches/release/boost/integer_fwd.hpp (props changed)
branches/release/boost/integer_traits.hpp (props changed)
branches/release/boost/interprocess/ (props changed)
branches/release/boost/intrusive/ (props changed)
branches/release/boost/io/ (props changed)
branches/release/boost/iostreams/ (props changed)
branches/release/boost/iterator/ (props changed)
branches/release/boost/iterator/iterator_facade.hpp (props changed)
branches/release/boost/local_function/ (props changed)
branches/release/boost/local_function.hpp (props changed)
branches/release/boost/locale/ (props changed)
branches/release/boost/locale.hpp (props changed)
branches/release/boost/math/ (props changed)
branches/release/boost/math_fwd.hpp (props changed)
branches/release/boost/move/ (props changed)
branches/release/boost/msm/ (props changed)
branches/release/boost/msm/active_state_switching_policies.hpp (props changed)
branches/release/boost/msm/back/ (props changed)
branches/release/boost/msm/back/args.hpp (props changed)
branches/release/boost/msm/back/bind_helpers.hpp (props changed)
branches/release/boost/msm/back/common_types.hpp (props changed)
branches/release/boost/msm/back/copy_policies.hpp (props changed)
branches/release/boost/msm/back/default_compile_policy.hpp (props changed)
branches/release/boost/msm/back/dispatch_table.hpp (props changed)
branches/release/boost/msm/back/favor_compile_time.hpp (props changed)
branches/release/boost/msm/back/fold_to_list.hpp (props changed)
branches/release/boost/msm/back/history_policies.hpp (props changed)
branches/release/boost/msm/back/metafunctions.hpp (props changed)
branches/release/boost/msm/back/mpl_graph_fsm_check.hpp (props changed)
branches/release/boost/msm/back/no_fsm_check.hpp (props changed)
branches/release/boost/msm/back/queue_container_circular.hpp (props changed)
branches/release/boost/msm/back/queue_container_deque.hpp (props changed)
branches/release/boost/msm/back/state_machine.hpp (props changed)
branches/release/boost/msm/back/tools.hpp (props changed)
branches/release/boost/msm/common.hpp (props changed)
branches/release/boost/msm/event_traits.hpp (props changed)
branches/release/boost/msm/front/ (props changed)
branches/release/boost/msm/front/common_states.hpp (props changed)
branches/release/boost/msm/front/completion_event.hpp (props changed)
branches/release/boost/msm/front/detail/ (props changed)
branches/release/boost/msm/front/detail/common_states.hpp (props changed)
branches/release/boost/msm/front/detail/row2_helper.hpp (props changed)
branches/release/boost/msm/front/euml/ (props changed)
branches/release/boost/msm/front/euml/algorithm.hpp (props changed)
branches/release/boost/msm/front/euml/common.hpp (props changed)
branches/release/boost/msm/front/euml/container.hpp (props changed)
branches/release/boost/msm/front/euml/euml.hpp (props changed)
branches/release/boost/msm/front/euml/euml_typeof.hpp (props changed)
branches/release/boost/msm/front/euml/guard_grammar.hpp (props changed)
branches/release/boost/msm/front/euml/iteration.hpp (props changed)
branches/release/boost/msm/front/euml/operator.hpp (props changed)
branches/release/boost/msm/front/euml/phoenix_placeholders.hpp (props changed)
branches/release/boost/msm/front/euml/querying.hpp (props changed)
branches/release/boost/msm/front/euml/state_grammar.hpp (props changed)
branches/release/boost/msm/front/euml/stl.hpp (props changed)
branches/release/boost/msm/front/euml/stt_grammar.hpp (props changed)
branches/release/boost/msm/front/euml/transformation.hpp (props changed)
branches/release/boost/msm/front/functor_row.hpp (props changed)
branches/release/boost/msm/front/internal_row.hpp (props changed)
branches/release/boost/msm/front/row2.hpp (props changed)
branches/release/boost/msm/front/state_machine_def.hpp (props changed)
branches/release/boost/msm/front/states.hpp (props changed)
branches/release/boost/msm/mpl_graph/ (props changed)
branches/release/boost/msm/msm_grammar.hpp (props changed)
branches/release/boost/msm/proto_config.hpp (props changed)
branches/release/boost/msm/row_tags.hpp (props changed)
branches/release/boost/numeric/ublas/ (props changed)
branches/release/boost/numeric/ublas/functional.hpp (props changed)
branches/release/boost/parameter/ (props changed)
branches/release/boost/parameter.hpp (props changed)
branches/release/boost/pool/ (props changed)
branches/release/boost/preprocessor/ (props changed)
branches/release/boost/program_options/ (props changed)
branches/release/boost/property_tree/ (props changed)
branches/release/boost/python/ (props changed)
branches/release/boost/random/discrete_distribution.hpp (props changed)
branches/release/boost/random/piecewise_constant_distribution.hpp (props changed)
branches/release/boost/random/piecewise_linear_distribution.hpp (props changed)
branches/release/boost/random/seed_seq.hpp (props changed)
branches/release/boost/range/ (props changed)
branches/release/boost/ratio/ (props changed)
branches/release/boost/regex/ (props changed)
branches/release/boost/regex.h (props changed)
branches/release/boost/regex.hpp (props changed)
branches/release/boost/regex_fwd.hpp (props changed)
branches/release/boost/scope_exit.hpp (props changed)
branches/release/boost/serialization/ (props changed)
branches/release/boost/signals/ (props changed)
branches/release/boost/signals2/ (props changed)
branches/release/boost/signals2.hpp (props changed)
branches/release/boost/spirit/ (props changed)
branches/release/boost/spirit/home/ (props changed)
branches/release/boost/spirit/home/karma/ (props changed)
branches/release/boost/spirit/home/support/attributes.hpp (props changed)
branches/release/boost/statechart/ (props changed)
branches/release/boost/static_assert.hpp (props changed)
branches/release/boost/system/ (props changed)
branches/release/boost/thread/ (props changed)
branches/release/boost/thread.hpp (props changed)
branches/release/boost/timer.hpp (props changed)
branches/release/boost/token_functions.hpp (props changed)
branches/release/boost/tr1/ (props changed)
branches/release/boost/type_traits/ (props changed)
branches/release/boost/type_traits.hpp (props changed)
branches/release/boost/typeof/message.hpp (props changed)
branches/release/boost/typeof/register_functions.hpp (props changed)
branches/release/boost/typeof/register_functions_iterate.hpp (props changed)
branches/release/boost/typeof/typeof.hpp (props changed)
branches/release/boost/typeof/unsupported.hpp (props changed)
branches/release/boost/unordered/ (props changed)
branches/release/boost/utility/ (props changed)
branches/release/boost/utility/identity_type.hpp (props changed)
branches/release/boost/utility/value_init.hpp (props changed)
branches/release/boost/uuid/ (props changed)
branches/release/boost/variant/ (props changed)
branches/release/boost/version.hpp (props changed)
branches/release/boost/wave/ (props changed)
branches/release/boost/xpressive/ (props changed)
branches/release/boostcpp.jam (props changed)
branches/release/bootstrap.bat (props changed)
branches/release/bootstrap.sh (props changed)
branches/release/doc/ (props changed)
branches/release/index.htm (props changed)
branches/release/index.html (props changed)
branches/release/libs/ (props changed)
branches/release/libs/algorithm/doc/Jamfile.v2 (props changed)
branches/release/libs/algorithm/doc/algorithm.qbk (props changed)
branches/release/libs/algorithm/doc/all_of.qbk (props changed)
branches/release/libs/algorithm/doc/any_of.qbk (props changed)
branches/release/libs/algorithm/doc/boyer_moore.qbk (props changed)
branches/release/libs/algorithm/doc/boyer_moore_horspool.qbk (props changed)
branches/release/libs/algorithm/doc/clamp-hpp.qbk (props changed)
branches/release/libs/algorithm/doc/hex.qbk (props changed)
branches/release/libs/algorithm/doc/is_partitioned.qbk (props changed)
branches/release/libs/algorithm/doc/knuth_morris_pratt.qbk (props changed)
branches/release/libs/algorithm/doc/none_of.qbk (props changed)
branches/release/libs/algorithm/doc/one_of.qbk (props changed)
branches/release/libs/algorithm/doc/ordered-hpp.qbk (props changed)
branches/release/libs/algorithm/doc/partition_point.qbk (props changed)
branches/release/libs/algorithm/example/Jamfile.v2 (props changed)
branches/release/libs/algorithm/example/clamp_example.cpp (props changed)
branches/release/libs/algorithm/example/search_example.cpp (props changed)
branches/release/libs/algorithm/minmax/index.html (props changed)
branches/release/libs/algorithm/string/ (props changed)
branches/release/libs/algorithm/string/doc/Jamfile.v2 (props changed)
branches/release/libs/algorithm/string/doc/usage.xml (props changed)
branches/release/libs/algorithm/test/ (props changed)
branches/release/libs/algorithm/test/Jamfile.v2 (props changed)
branches/release/libs/algorithm/test/all_of_test.cpp (props changed)
branches/release/libs/algorithm/test/any_of_test.cpp (props changed)
branches/release/libs/algorithm/test/clamp_test.cpp (props changed)
branches/release/libs/algorithm/test/copy_n_test1.cpp (props changed)
branches/release/libs/algorithm/test/empty_search_test.cpp (props changed)
branches/release/libs/algorithm/test/find_if_not_test1.cpp (props changed)
branches/release/libs/algorithm/test/hex_fail1.cpp (props changed)
branches/release/libs/algorithm/test/hex_test1.cpp (props changed)
branches/release/libs/algorithm/test/hex_test2.cpp (props changed)
branches/release/libs/algorithm/test/hex_test3.cpp (props changed)
branches/release/libs/algorithm/test/hex_test4.cpp (props changed)
branches/release/libs/algorithm/test/iota_test1.cpp (props changed)
branches/release/libs/algorithm/test/is_partitioned_test1.cpp (props changed)
branches/release/libs/algorithm/test/is_permutation_test1.cpp (props changed)
branches/release/libs/algorithm/test/none_of_test.cpp (props changed)
branches/release/libs/algorithm/test/one_of_test.cpp (props changed)
branches/release/libs/algorithm/test/ordered_test.cpp (props changed)
branches/release/libs/algorithm/test/partition_copy_test1.cpp (props changed)
branches/release/libs/algorithm/test/partition_point_test1.cpp (props changed)
branches/release/libs/algorithm/test/search_fail1.cpp (props changed)
branches/release/libs/algorithm/test/search_fail2.cpp (props changed)
branches/release/libs/algorithm/test/search_fail3.cpp (props changed)
branches/release/libs/algorithm/test/search_test1.cpp (props changed)
branches/release/libs/algorithm/test/search_test2.cpp (props changed)
branches/release/libs/algorithm/test/search_test3.cpp (props changed)
branches/release/libs/algorithm/test/search_test_data/0001.corpus (props changed)
branches/release/libs/algorithm/test/search_test_data/0001b.pat (props changed)
branches/release/libs/algorithm/test/search_test_data/0001e.pat (props changed)
branches/release/libs/algorithm/test/search_test_data/0001f.pat (props changed)
branches/release/libs/algorithm/test/search_test_data/0001n.pat (props changed)
branches/release/libs/algorithm/test/search_test_data/0002b.pat (props changed)
branches/release/libs/algorithm/test/search_test_data/0002e.pat (props changed)
branches/release/libs/algorithm/test/search_test_data/0002f.pat (props changed)
branches/release/libs/algorithm/test/search_test_data/0002n.pat (props changed)
branches/release/libs/array/ (props changed)
branches/release/libs/array/test/Jamfile.v2 (props changed)
branches/release/libs/array/test/array0.cpp (props changed)
branches/release/libs/array/test/array2.cpp (props changed)
branches/release/libs/array/test/array6.cpp (props changed)
branches/release/libs/array/test/array_hash.cpp (props changed)
branches/release/libs/bimap/ (props changed)
branches/release/libs/chrono/src/ (props changed)
branches/release/libs/chrono/test/duration/ (props changed)
branches/release/libs/chrono/test/io/ (props changed)
branches/release/libs/chrono/test/time_point/ (props changed)
branches/release/libs/chrono/test/traits/ (props changed)
branches/release/libs/config/ (props changed)
branches/release/libs/config/doc/macro_reference.qbk (props changed)
branches/release/libs/config/test/ (props changed)
branches/release/libs/container/ (props changed)
branches/release/libs/context/ (props changed)
branches/release/libs/date_time/ (props changed)
branches/release/libs/date_time/src/gregorian/ (props changed)
branches/release/libs/detail/ (props changed)
branches/release/libs/filesystem/ (props changed)
branches/release/libs/function/ (props changed)
branches/release/libs/functional/ (props changed)
branches/release/libs/functional/overloaded_function/ (props changed)
branches/release/libs/fusion/ (props changed)
branches/release/libs/geometry/ (props changed)
branches/release/libs/geometry/doc/ (props changed)
branches/release/libs/geometry/doc/Jamfile.v2 (props changed)
branches/release/libs/geometry/doc/about_documentation.qbk (props changed)
branches/release/libs/geometry/doc/acknowledgments.qbk (props changed)
branches/release/libs/geometry/doc/compiling.qbk (props changed)
branches/release/libs/geometry/doc/concept/ (props changed)
branches/release/libs/geometry/doc/copyright_note_policy.txt (props changed)
branches/release/libs/geometry/doc/design_rationale.qbk (props changed)
branches/release/libs/geometry/doc/doxy/ (props changed)
branches/release/libs/geometry/doc/generated/ (props changed)
branches/release/libs/geometry/doc/geometry.qbk (props changed)
branches/release/libs/geometry/doc/html/ (props changed)
branches/release/libs/geometry/doc/imports.qbk (props changed)
branches/release/libs/geometry/doc/introduction.qbk (props changed)
branches/release/libs/geometry/doc/make_qbk.py (props changed)
branches/release/libs/geometry/doc/matrix.qbk (props changed)
branches/release/libs/geometry/doc/quickref.xml (props changed)
branches/release/libs/geometry/doc/quickstart.qbk (props changed)
branches/release/libs/geometry/doc/readme.txt (props changed)
branches/release/libs/geometry/doc/reference/ (props changed)
branches/release/libs/geometry/doc/reference.qbk (props changed)
branches/release/libs/geometry/doc/release_notes.qbk (props changed)
branches/release/libs/geometry/doc/src/ (props changed)
branches/release/libs/geometry/example/ (props changed)
branches/release/libs/geometry/index.html (props changed)
branches/release/libs/geometry/test/ (props changed)
branches/release/libs/graph/doc/ (props changed)
branches/release/libs/graph_parallel/ (props changed)
branches/release/libs/heap/ (props changed)
branches/release/libs/icl/ (props changed)
branches/release/libs/icl/doc/ (props changed)
branches/release/libs/icl/doc/html/ (props changed)
branches/release/libs/icl/doc/html/boost/icl/ (props changed)
branches/release/libs/icl/doc/html/header/boost/icl/ (props changed)
branches/release/libs/icl/test/ (props changed)
branches/release/libs/icl/test/test_doc_code_/ (props changed)
branches/release/libs/integer/ (props changed)
branches/release/libs/interprocess/ (props changed)
branches/release/libs/intrusive/ (props changed)
branches/release/libs/io/ (props changed)
branches/release/libs/io/doc/ (props changed)
branches/release/libs/iostreams/ (props changed)
branches/release/libs/iostreams/src/file_descriptor.cpp (props changed)
branches/release/libs/iostreams/test/Jamfile.v2 (props changed)
branches/release/libs/iostreams/test/windows_pipe_test.cpp (props changed)
branches/release/libs/iterator/ (props changed)
branches/release/libs/libraries.htm (props changed)
branches/release/libs/local_function/ (props changed)
branches/release/libs/locale/ (props changed)
branches/release/libs/maintainers.txt (props changed)
branches/release/libs/math/ (props changed)
branches/release/libs/math/doc/sf_and_dist/faq.qbk (props changed)
branches/release/libs/math/test/s_.ipp (props changed)
branches/release/libs/move/ (props changed)
branches/release/libs/mpi/build/ (props changed)
branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html (props changed)
branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html (props changed)
branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html (props changed)
branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html (props changed)
branches/release/libs/mpl/doc/refmanual/data-types-concepts.html (props changed)
branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html (props changed)
branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html (props changed)
branches/release/libs/mpl/doc/refmanual/inserter-class.html (props changed)
branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html (props changed)
branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html (props changed)
branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst (props changed)
branches/release/libs/msm/ (props changed)
branches/release/libs/numeric/ublas/ (props changed)
branches/release/libs/numeric/ublas/doc/ (props changed)
branches/release/libs/parameter/doc/html/index.html (props changed)
branches/release/libs/phoenix/doc/basics.qbk (props changed)
branches/release/libs/phoenix/doc/examples/extending_actors.qbk (props changed)
branches/release/libs/phoenix/doc/organisation.qbk (props changed)
branches/release/libs/pool/ (props changed)
branches/release/libs/preprocessor/ (props changed)
branches/release/libs/program_options/ (props changed)
branches/release/libs/property_tree/ (props changed)
branches/release/libs/python/ (props changed)
branches/release/libs/random/test/test_discrete_distribution.cpp (props changed)
branches/release/libs/random/test/test_piecewise_constant_distribution.cpp (props changed)
branches/release/libs/random/test/test_piecewise_linear_distribution.cpp (props changed)
branches/release/libs/random/test/test_seed_seq.cpp (props changed)
branches/release/libs/range/ (props changed)
branches/release/libs/ratio/ (props changed)
branches/release/libs/regex/ (props changed)
branches/release/libs/scope_exit/ (props changed)
branches/release/libs/serialization/ (props changed)
branches/release/libs/serialization/example/ (props changed)
branches/release/libs/serialization/src/ (props changed)
branches/release/libs/serialization/test/test_diamond_complex.cpp (props changed)
branches/release/libs/signals/ (props changed)
branches/release/libs/signals/src/named_slot_map.cpp (props changed)
branches/release/libs/signals2/ (props changed)
branches/release/libs/signals2/doc/ (props changed)
branches/release/libs/spirit/ (props changed)
branches/release/libs/spirit/classic/example/ (props changed)
branches/release/libs/spirit/doc/ (props changed)
branches/release/libs/spirit/example/ (props changed)
branches/release/libs/spirit/phoenix/ (props changed)
branches/release/libs/spirit/test/ (props changed)
branches/release/libs/spirit/test/qi/optional.cpp (props changed)
branches/release/libs/statechart/ (props changed)
branches/release/libs/static_assert/ (props changed)
branches/release/libs/system/ (props changed)
branches/release/libs/thread/ (props changed)
branches/release/libs/timer/ (props changed)
branches/release/libs/tr1/ (props changed)
branches/release/libs/type_traits/ (props changed)
branches/release/libs/typeof/doc/typeof.qbk (props changed)
branches/release/libs/unordered/ (props changed)
branches/release/libs/utility/ (props changed)
branches/release/libs/utility/assert.html (props changed)
branches/release/libs/utility/assert_test.cpp (props changed)
branches/release/libs/utility/identity_type/ (props changed)
branches/release/libs/utility/swap.html (props changed)
branches/release/libs/utility/swap/test/std_bitset.cpp (props changed)
branches/release/libs/utility/value_init.htm (props changed)
branches/release/libs/utility/value_init_test.cpp (props changed)
branches/release/libs/uuid/ (props changed)
branches/release/libs/wave/ (props changed)
branches/release/more/ (props changed)
branches/release/rst.css (props changed)
branches/release/status/ (props changed)
branches/release/status/Jamfile.v2 (props changed)
branches/release/status/expected_results.xml (props changed)
branches/release/status/explicit-failures-markup.xml (props changed)
branches/release/status/explicit-failures.xsd (props changed)
branches/release/tools/ (props changed)
branches/release/tools/bcp/ (props changed)
branches/release/tools/boostbook/ (props changed)
branches/release/tools/build/v2/ (props changed)
branches/release/tools/inspect/ (props changed)
branches/release/tools/quickbook/ (props changed)
branches/release/tools/regression/ (props changed)
branches/release/tools/regression/src/library_status.cpp (props changed)
branches/release/tools/release/ (props changed)
branches/release/tools/wave/ (props changed)
Text files modified:
branches/release/boost/graph/astar_search.hpp | 2
branches/release/boost/graph/compressed_sparse_row_graph.hpp | 2
branches/release/boost/graph/core_numbers.hpp | 17 +-
branches/release/boost/graph/detail/d_ary_heap.hpp | 5
branches/release/boost/graph/detail/indexed_properties.hpp | 4
branches/release/boost/graph/detail/set_adaptor.hpp | 2
branches/release/boost/graph/distributed/adjlist/serialization.hpp | 13 -
branches/release/boost/graph/filtered_graph.hpp | 22 +--
branches/release/boost/graph/grid_graph.hpp | 243 +++++++++++++++++----------------------
branches/release/boost/graph/labeled_graph.hpp | 6
branches/release/boost/graph/named_function_params.hpp | 10
branches/release/boost/graph/named_graph.hpp | 2
branches/release/boost/graph/properties.hpp | 8
branches/release/boost/graph/relax.hpp | 28 +++-
branches/release/boost/graph/reverse_graph.hpp | 8
branches/release/boost/graph/undirected_graph.hpp | 5
branches/release/boost/graph/visitors.hpp | 4
branches/release/boost/pending/indirect_cmp.hpp | 5
branches/release/boost/pending/property.hpp | 84 +++----------
branches/release/libs/graph/doc/compressed_sparse_row.html | 4
branches/release/libs/graph/doc/dijkstra_shortest_paths.html | 4
branches/release/libs/graph/doc/dijkstra_shortest_paths_no_color_map.html | 14 -
branches/release/libs/graph/doc/grid_graph.html | 6
branches/release/libs/graph/doc/gursoy_atun_layout.html | 9
branches/release/libs/graph/doc/sorted_erdos_renyi_gen.html | 4
branches/release/libs/graph/example/Jamfile.v2 | 6
branches/release/libs/graph/example/subgraph_properties.cpp | 22 +-
branches/release/libs/graph/test/grid_graph_cc.cpp | 19 ++
branches/release/libs/graph/test/grid_graph_test.cpp | 63 +++++----
29 files changed, 277 insertions(+), 344 deletions(-)
Modified: branches/release/boost/graph/astar_search.hpp
==============================================================================
--- branches/release/boost/graph/astar_search.hpp (original)
+++ branches/release/boost/graph/astar_search.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -370,8 +370,8 @@
detail::make_property_map_from_arg_pack_gen<tag::rank_map, D>(D())(g, arg_pack),
detail::make_property_map_from_arg_pack_gen<tag::distance_map, D>(D())(g, arg_pack),
detail::override_const_property(arg_pack, _weight_map, g, edge_weight),
- detail::override_const_property(arg_pack, _vertex_index_map, g, vertex_index),
detail::make_color_map_from_arg_pack(g, arg_pack),
+ detail::override_const_property(arg_pack, _vertex_index_map, g, vertex_index),
arg_pack[_distance_compare | std::less<D>()],
arg_pack[_distance_combine | closed_plus<D>(inf)],
inf,
Modified: branches/release/boost/graph/compressed_sparse_row_graph.hpp
==============================================================================
--- branches/release/boost/graph/compressed_sparse_row_graph.hpp (original)
+++ branches/release/boost/graph/compressed_sparse_row_graph.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -136,7 +136,7 @@
typedef boost::iterator_facade<default_construct_iterator<T>, T, std::random_access_iterator_tag, const T&> base_type;
T saved_value;
const T& dereference() const {return saved_value;}
- bool equal(default_construct_iterator i) const {return true;}
+ bool equal(default_construct_iterator /*i*/) const {return true;}
void increment() {}
void decrement() {}
void advance(typename base_type::difference_type) {}
Modified: branches/release/boost/graph/core_numbers.hpp
==============================================================================
--- branches/release/boost/graph/core_numbers.hpp (original)
+++ branches/release/boost/graph/core_numbers.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -11,8 +11,7 @@
#ifndef BOOST_GRAPH_CORE_NUMBERS_HPP
#define BOOST_GRAPH_CORE_NUMBERS_HPP
-#include <boost/pending/mutable_queue.hpp>
-#include <boost/pending/indirect_cmp.hpp>
+#include <boost/graph/detail/d_ary_heap.hpp>
#include <boost/graph/breadth_first_search.hpp>
#include <boost/iterator/reverse_iterator.hpp>
#include <boost/concept/assert.hpp>
@@ -159,7 +158,8 @@
if (get(c,u) > v_cn) {
// remove the edge
put(c,u,get(c,u)-get(wm,*oi));
- Q.update(u);
+ if (Q.contains(u))
+ Q.update(u);
}
}
vis.finish_vertex(v,g);
@@ -175,13 +175,14 @@
{
typedef typename property_traits<CoreMap>::value_type D;
typedef std::less<D> Cmp;
- typedef indirect_cmp<CoreMap,Cmp > IndirectCmp;
- IndirectCmp icmp(c, Cmp());
// build the mutable queue
typedef typename graph_traits<Graph>::vertex_descriptor vertex;
- typedef mutable_queue<vertex, std::vector<vertex>, IndirectCmp,
- IndexMap> MutableQueue;
- MutableQueue Q(num_vertices(g), icmp, im);
+ std::vector<std::size_t> index_in_heap_data(num_vertices(g));
+ typedef iterator_property_map<std::vector<std::size_t>::iterator, IndexMap>
+ index_in_heap_map_type;
+ index_in_heap_map_type index_in_heap_map(index_in_heap_data.begin(), im);
+ typedef d_ary_heap_indirect<vertex, 4, index_in_heap_map_type, CoreMap, Cmp> MutableQueue;
+ MutableQueue Q(c, index_in_heap_map, Cmp());
typename graph_traits<Graph>::vertex_iterator vi,vi_end;
for (boost::tie(vi,vi_end) = vertices(g); vi!=vi_end; ++vi) {
Q.push(*vi);
Modified: branches/release/boost/graph/detail/d_ary_heap.hpp
==============================================================================
--- branches/release/boost/graph/detail/d_ary_heap.hpp (original)
+++ branches/release/boost/graph/detail/d_ary_heap.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -20,6 +20,11 @@
#include <boost/shared_array.hpp>
#include <boost/property_map/property_map.hpp>
+// WARNING: it is not safe to copy a d_ary_heap_indirect and then modify one of
+// the copies. The class is required to be copyable so it can be passed around
+// (without move support from C++11), but it deep-copies the heap contents yet
+// shallow-copies the index_in_heap_map.
+
namespace boost {
// Swap two elements in a property map without assuming they model
Modified: branches/release/boost/graph/detail/indexed_properties.hpp
==============================================================================
--- branches/release/boost/graph/detail/indexed_properties.hpp (original)
+++ branches/release/boost/graph/detail/indexed_properties.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -253,7 +253,7 @@
typedef secret const_edge_map_type;
secret operator[](secret) { return secret(); }
- void write_by_index(std::size_t idx, const no_property& prop) {}
+ void write_by_index(std::size_t /*idx*/, const no_property& /*prop*/) {}
edge_map_type get_edge_bundle(const IndexMap& = IndexMap()) const {
return edge_map_type();
@@ -270,7 +270,7 @@
public:
void push_back(const edge_push_back_type&) { }
- void move_range(std::size_t src_begin, std::size_t src_end, std::size_t dest_begin) {}
+ void move_range(std::size_t /*src_begin*/, std::size_t /*src_end*/, std::size_t /*dest_begin*/) {}
typedef dummy_no_property_iterator iterator;
iterator begin() {return dummy_no_property_iterator();}
Modified: branches/release/boost/graph/detail/set_adaptor.hpp
==============================================================================
--- branches/release/boost/graph/detail/set_adaptor.hpp (original)
+++ branches/release/boost/graph/detail/set_adaptor.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -111,7 +111,7 @@
// Shit, can't implement this without knowing the size of the
// universe.
template <class K, class C, class A>
- void set_compliment(const std::set<K,C,A>& x,
+ void set_compliment(const std::set<K,C,A>& /*x*/,
std::set<K,C,A>& z)
{
z.clear();
Modified: branches/release/boost/graph/distributed/adjlist/serialization.hpp
==============================================================================
--- branches/release/boost/graph/distributed/adjlist/serialization.hpp (original)
+++ branches/release/boost/graph/distributed/adjlist/serialization.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -833,12 +833,7 @@
typedef typename graph_traits<
Graph>::edge_descriptor edge_descriptor;
- // We retag the property list here so that bundled properties are
- // properly placed into property<edge_bundle_t, Bundle>.
- typedef typename boost::detail::retag_property_list<
- edge_bundle_t,
- typename Graph::edge_property_type>::type
- edge_property_type;
+ typedef typename Graph::edge_property_type edge_property_type;
int E = num_edges(g);
ar << BOOST_SERIALIZATION_NVP(E);
@@ -947,12 +942,6 @@
template <class OStreamConstructibleArchive>
void PBGL_DISTRIB_ADJLIST_TYPE::save(std::string const& filename) const
{
- // We retag the property list here so that bundled properties are
- // properly placed into property<vertex_bundle_t, Bundle>.
- typedef typename boost::detail::retag_property_list<
- vertex_bundle_t, vertex_property_type
- >::type vertex_property_type;
-
typedef typename config_type::VertexListS vertex_list_selector;
process_group_type pg = process_group();
Modified: branches/release/boost/graph/filtered_graph.hpp
==============================================================================
--- branches/release/boost/graph/filtered_graph.hpp (original)
+++ branches/release/boost/graph/filtered_graph.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -195,7 +195,6 @@
typedef filtered_graph_tag graph_tag;
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
// Bundled properties support
template<typename Descriptor>
typename graph::detail::bundled_result<Graph, Descriptor>::type&
@@ -206,11 +205,10 @@
typename graph::detail::bundled_result<Graph, Descriptor>::type const&
operator[](Descriptor x) const
{ return this->m_g[x]; }
-#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
static vertex_descriptor null_vertex()
{
- return Graph::null_vertex();
+ return Traits::null_vertex();
}
//private:
@@ -222,26 +220,21 @@
template <typename Graph,
typename EdgePredicate,
typename VertexPredicate>
- struct vertex_property_type<filtered_graph<Graph, EdgePredicate, VertexPredicate> > {
- typedef typename vertex_property_type<Graph>::type type;
- };
+ struct vertex_property_type<filtered_graph<Graph, EdgePredicate, VertexPredicate> >:
+ vertex_property_type<Graph> {};
template <typename Graph,
typename EdgePredicate,
typename VertexPredicate>
- struct edge_property_type<filtered_graph<Graph, EdgePredicate, VertexPredicate> > {
- typedef typename edge_property_type<Graph>::type type;
- };
+ struct edge_property_type<filtered_graph<Graph, EdgePredicate, VertexPredicate> >:
+ edge_property_type<Graph> {};
template <typename Graph,
typename EdgePredicate,
typename VertexPredicate>
- struct graph_property_type<filtered_graph<Graph, EdgePredicate, VertexPredicate> > {
- typedef typename graph_property_type<Graph>::type type;
- };
-
+ struct graph_property_type<filtered_graph<Graph, EdgePredicate, VertexPredicate> >:
+ graph_property_type<Graph> {};
-#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
template<typename Graph, typename EdgePredicate, typename VertexPredicate>
struct vertex_bundle_type<filtered_graph<Graph, EdgePredicate,
VertexPredicate> >
@@ -256,7 +249,6 @@
struct graph_bundle_type<filtered_graph<Graph, EdgePredicate,
VertexPredicate> >
: graph_bundle_type<Graph> { };
-#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
//===========================================================================
// Non-member functions for the Filtered Edge Graph
Modified: branches/release/boost/graph/grid_graph.hpp
==============================================================================
--- branches/release/boost/graph/grid_graph.hpp (original)
+++ branches/release/boost/graph/grid_graph.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -30,11 +30,6 @@
#define BOOST_GRID_GRAPH_TYPE \
grid_graph<DimensionsT, VertexIndexT, EdgeIndexT>
-#define BOOST_GRID_GRAPH_TYPE_MEM typename BOOST_GRID_GRAPH_TYPE::
-
-#define BOOST_GRID_GRAPH_TYPE_TD(mem) \
- typedef typename BOOST_GRID_GRAPH_TYPE::mem mem
-
#define BOOST_GRID_GRAPH_TRAITS_T \
typename graph_traits<BOOST_GRID_GRAPH_TYPE >
@@ -68,6 +63,13 @@
return (m_graph->index_of(key));
}
+ friend inline Index
+ get(const grid_graph_index_map<Graph, Descriptor, Index>& index_map,
+ const typename grid_graph_index_map<Graph, Descriptor, Index>::key_type& key)
+ {
+ return (index_map[key]);
+ }
+
protected:
const Graph* m_graph;
};
@@ -106,6 +108,13 @@
value_type operator[](const key_type& key) const {
return (value_type(key.second, key.first));
}
+
+ friend inline Descriptor
+ get(const grid_graph_reverse_edge_map<Descriptor>& rev_map,
+ const typename grid_graph_reverse_edge_map<Descriptor>::key_type& key)
+ {
+ return (rev_map[key]);
+ }
};
template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
@@ -442,7 +451,7 @@
vertex_descriptor vertex_at
(vertices_size_type vertex_index) const {
- array<vertices_size_type, Dimensions> vertex;
+ boost::array<vertices_size_type, Dimensions> vertex;
vertices_size_type index_divider = 1;
for (std::size_t dimension_index = 0;
@@ -532,6 +541,8 @@
vertex_descriptor source_vertex = source(edge, *this);
vertex_descriptor target_vertex = target(edge, *this);
+ BOOST_ASSERT (source_vertex != target_vertex);
+
// Determine the dimension where the source and target vertices
// differ (should only be one if this is a valid edge).
std::size_t different_dimension_index = 0;
@@ -732,13 +743,12 @@
// VertexListGraph
//================
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline std::pair<BOOST_GRID_GRAPH_TYPE_MEM vertex_iterator,
- BOOST_GRID_GRAPH_TYPE_MEM vertex_iterator>
- vertices(const BOOST_GRID_GRAPH_TYPE& graph) {
- BOOST_GRID_GRAPH_TYPE_TD(vertex_iterator);
- BOOST_GRID_GRAPH_TYPE_TD(vertex_function);
- BOOST_GRID_GRAPH_TYPE_TD(vertex_index_iterator);
+ friend inline std::pair<typename type::vertex_iterator,
+ typename type::vertex_iterator>
+ vertices(const type& graph) {
+ typedef typename type::vertex_iterator vertex_iterator;
+ typedef typename type::vertex_function vertex_function;
+ typedef typename type::vertex_index_iterator vertex_index_iterator;
return (std::make_pair
(vertex_iterator(vertex_index_iterator(0),
@@ -747,16 +757,14 @@
vertex_function(&graph))));
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM vertices_size_type
- num_vertices(const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend inline typename type::vertices_size_type
+ num_vertices(const type& graph) {
return (graph.num_vertices());
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor
- vertex(BOOST_GRID_GRAPH_TYPE_MEM vertices_size_type vertex_index,
- const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend inline typename type::vertex_descriptor
+ vertex(typename type::vertices_size_type vertex_index,
+ const type& graph) {
return (graph.vertex_at(vertex_index));
}
@@ -765,14 +773,13 @@
// IncidenceGraph
//===============
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline std::pair<BOOST_GRID_GRAPH_TYPE_MEM out_edge_iterator,
- BOOST_GRID_GRAPH_TYPE_MEM out_edge_iterator>
- out_edges(BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex,
- const BOOST_GRID_GRAPH_TYPE& graph) {
- BOOST_GRID_GRAPH_TYPE_TD(degree_iterator);
- BOOST_GRID_GRAPH_TYPE_TD(out_edge_function);
- BOOST_GRID_GRAPH_TYPE_TD(out_edge_iterator);
+ friend inline std::pair<typename type::out_edge_iterator,
+ typename type::out_edge_iterator>
+ out_edges(typename type::vertex_descriptor vertex,
+ const type& graph) {
+ typedef typename type::degree_iterator degree_iterator;
+ typedef typename type::out_edge_function out_edge_function;
+ typedef typename type::out_edge_iterator out_edge_iterator;
return (std::make_pair
(out_edge_iterator(degree_iterator(0),
@@ -781,19 +788,17 @@
out_edge_function(vertex, &graph))));
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM degree_size_type
+ friend inline typename type::degree_size_type
out_degree
- (BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex,
- const BOOST_GRID_GRAPH_TYPE& graph) {
+ (typename type::vertex_descriptor vertex,
+ const type& graph) {
return (graph.out_degree(vertex));
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor
- out_edge_at(BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex,
- BOOST_GRID_GRAPH_TYPE_MEM degree_size_type out_edge_index,
- const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend inline typename type::edge_descriptor
+ out_edge_at(typename type::vertex_descriptor vertex,
+ typename type::degree_size_type out_edge_index,
+ const type& graph) {
return (graph.out_edge_at(vertex, out_edge_index));
}
@@ -801,14 +806,13 @@
// AdjacencyGraph
//===============
- template <BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend typename std::pair<BOOST_GRID_GRAPH_TYPE_MEM adjacency_iterator,
- BOOST_GRID_GRAPH_TYPE_MEM adjacency_iterator>
- adjacent_vertices (BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex,
- const BOOST_GRID_GRAPH_TYPE& graph) {
- BOOST_GRID_GRAPH_TYPE_TD(degree_iterator);
- BOOST_GRID_GRAPH_TYPE_TD(adjacent_vertex_function);
- BOOST_GRID_GRAPH_TYPE_TD(adjacency_iterator);
+ friend typename std::pair<typename type::adjacency_iterator,
+ typename type::adjacency_iterator>
+ adjacent_vertices (typename type::vertex_descriptor vertex,
+ const type& graph) {
+ typedef typename type::degree_iterator degree_iterator;
+ typedef typename type::adjacent_vertex_function adjacent_vertex_function;
+ typedef typename type::adjacency_iterator adjacency_iterator;
return (std::make_pair
(adjacency_iterator(degree_iterator(0),
@@ -821,26 +825,23 @@
// EdgeListGraph
//==============
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM edges_size_type
- num_edges(const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend inline typename type::edges_size_type
+ num_edges(const type& graph) {
return (graph.num_edges());
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor
- edge_at(BOOST_GRID_GRAPH_TYPE_MEM edges_size_type edge_index,
- const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend inline typename type::edge_descriptor
+ edge_at(typename type::edges_size_type edge_index,
+ const type& graph) {
return (graph.edge_at(edge_index));
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline std::pair<BOOST_GRID_GRAPH_TYPE_MEM edge_iterator,
- BOOST_GRID_GRAPH_TYPE_MEM edge_iterator>
- edges(const BOOST_GRID_GRAPH_TYPE& graph) {
- BOOST_GRID_GRAPH_TYPE_TD(edge_index_iterator);
- BOOST_GRID_GRAPH_TYPE_TD(edge_function);
- BOOST_GRID_GRAPH_TYPE_TD(edge_iterator);
+ friend inline std::pair<typename type::edge_iterator,
+ typename type::edge_iterator>
+ edges(const type& graph) {
+ typedef typename type::edge_index_iterator edge_index_iterator;
+ typedef typename type::edge_function edge_function;
+ typedef typename type::edge_iterator edge_iterator;
return (std::make_pair
(edge_iterator(edge_index_iterator(0),
@@ -853,14 +854,13 @@
// BiDirectionalGraph
//===================
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline std::pair<BOOST_GRID_GRAPH_TYPE_MEM in_edge_iterator,
- BOOST_GRID_GRAPH_TYPE_MEM in_edge_iterator>
- in_edges(BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex,
- const BOOST_GRID_GRAPH_TYPE& graph) {
- BOOST_GRID_GRAPH_TYPE_TD(in_edge_function);
- BOOST_GRID_GRAPH_TYPE_TD(degree_iterator);
- BOOST_GRID_GRAPH_TYPE_TD(in_edge_iterator);
+ friend inline std::pair<typename type::in_edge_iterator,
+ typename type::in_edge_iterator>
+ in_edges(typename type::vertex_descriptor vertex,
+ const type& graph) {
+ typedef typename type::in_edge_function in_edge_function;
+ typedef typename type::degree_iterator degree_iterator;
+ typedef typename type::in_edge_iterator in_edge_iterator;
return (std::make_pair
(in_edge_iterator(degree_iterator(0),
@@ -869,25 +869,22 @@
in_edge_function(vertex, &graph))));
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM degree_size_type
- in_degree (BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex,
- const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend inline typename type::degree_size_type
+ in_degree (typename type::vertex_descriptor vertex,
+ const type& graph) {
return (graph.in_degree(vertex));
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM degree_size_type
- degree (BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex,
- const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend inline typename type::degree_size_type
+ degree (typename type::vertex_descriptor vertex,
+ const type& graph) {
return (graph.out_degree(vertex) * 2);
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor
- in_edge_at(BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex,
- BOOST_GRID_GRAPH_TYPE_MEM degree_size_type in_edge_index,
- const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend inline typename type::edge_descriptor
+ in_edge_at(typename type::vertex_descriptor vertex,
+ typename type::degree_size_type in_edge_index,
+ const type& graph) {
return (graph.in_edge_at(vertex, in_edge_index));
}
@@ -896,21 +893,20 @@
// Adjacency Matrix
//==================
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend std::pair<BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor, bool>
- edge (BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor source_vertex,
- BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor destination_vertex,
- const BOOST_GRID_GRAPH_TYPE& graph) {
+ friend std::pair<typename type::edge_descriptor, bool>
+ edge (typename type::vertex_descriptor source_vertex,
+ typename type::vertex_descriptor destination_vertex,
+ const type& graph) {
- std::pair<BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor, bool> edge_exists =
+ std::pair<typename type::edge_descriptor, bool> edge_exists =
std::make_pair(std::make_pair(source_vertex, destination_vertex), false);
for (std::size_t dimension_index = 0;
dimension_index < Dimensions;
++dimension_index) {
- BOOST_GRID_GRAPH_TYPE_MEM vertices_size_type dim_difference = 0;
- BOOST_GRID_GRAPH_TYPE_MEM vertices_size_type
+ typename type::vertices_size_type dim_difference = 0;
+ typename type::vertices_size_type
source_dim = source_vertex[dimension_index],
dest_dim = destination_vertex[dimension_index];
@@ -957,78 +953,55 @@
// Index Property Map Functions
//=============================
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM vertices_size_type
+ friend inline typename type::vertices_size_type
get(vertex_index_t,
- const BOOST_GRID_GRAPH_TYPE& graph,
- BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor vertex) {
+ const type& graph,
+ typename type::vertex_descriptor vertex) {
return (graph.index_of(vertex));
}
- template<BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
- friend inline BOOST_GRID_GRAPH_TYPE_MEM edges_size_type
+ friend inline typename type::edges_size_type
get(edge_index_t,
- const BOOST_GRID_GRAPH_TYPE& graph,
- BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor edge) {
+ const type& graph,
+ typename type::edge_descriptor edge) {
return (graph.index_of(edge));
}
- template <BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
friend inline grid_graph_index_map<
- BOOST_GRID_GRAPH_TYPE,
- BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor,
- BOOST_GRID_GRAPH_TYPE_MEM vertices_size_type>
- get(vertex_index_t, const BOOST_GRID_GRAPH_TYPE& graph) {
+ type,
+ typename type::vertex_descriptor,
+ typename type::vertices_size_type>
+ get(vertex_index_t, const type& graph) {
return (grid_graph_index_map<
- BOOST_GRID_GRAPH_TYPE,
- BOOST_GRID_GRAPH_TYPE_MEM vertex_descriptor,
- BOOST_GRID_GRAPH_TYPE_MEM vertices_size_type>(graph));
+ type,
+ typename type::vertex_descriptor,
+ typename type::vertices_size_type>(graph));
}
- template <BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
friend inline grid_graph_index_map<
- BOOST_GRID_GRAPH_TYPE,
- BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor,
- BOOST_GRID_GRAPH_TYPE_MEM edges_size_type>
- get(edge_index_t, const BOOST_GRID_GRAPH_TYPE& graph) {
+ type,
+ typename type::edge_descriptor,
+ typename type::edges_size_type>
+ get(edge_index_t, const type& graph) {
return (grid_graph_index_map<
- BOOST_GRID_GRAPH_TYPE,
- BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor,
- BOOST_GRID_GRAPH_TYPE_MEM edges_size_type>(graph));
+ type,
+ typename type::edge_descriptor,
+ typename type::edges_size_type>(graph));
}
- template <BOOST_GRID_GRAPH_TEMPLATE_PARAMS>
friend inline grid_graph_reverse_edge_map<
- BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor>
- get(edge_reverse_t, const BOOST_GRID_GRAPH_TYPE& graph) {
+ typename type::edge_descriptor>
+ get(edge_reverse_t, const type& graph) {
return (grid_graph_reverse_edge_map<
- BOOST_GRID_GRAPH_TYPE_MEM edge_descriptor>());
+ typename type::edge_descriptor>());
}
template<typename Graph,
typename Descriptor,
typename Index>
- friend inline Index
- get(const grid_graph_index_map<Graph, Descriptor, Index>& index_map,
- const typename grid_graph_index_map<Graph, Descriptor, Index>::key_type& key)
- {
- return (index_map[key]);
- }
-
- template<typename Graph,
- typename Descriptor,
- typename Index>
friend struct grid_graph_index_map;
template<typename Descriptor>
- friend inline Descriptor
- get(const grid_graph_reverse_edge_map<Descriptor>& rev_map,
- const typename grid_graph_reverse_edge_map<Descriptor>::key_type& key)
- {
- return (rev_map[key]);
- }
-
- template<typename Descriptor>
friend struct grid_graph_reverse_edge_map;
}; // grid_graph
@@ -1036,8 +1009,6 @@
} // namespace boost
#undef BOOST_GRID_GRAPH_TYPE
-#undef BOOST_GRID_GRAPH_TYPE_TD
-#undef BOOST_GRID_GRAPH_TYPE_MEM
#undef BOOST_GRID_GRAPH_TEMPLATE_PARAMS
#undef BOOST_GRID_GRAPH_TRAITS_T
Modified: branches/release/boost/graph/labeled_graph.hpp
==============================================================================
--- branches/release/boost/graph/labeled_graph.hpp (original)
+++ branches/release/boost/graph/labeled_graph.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -196,7 +196,7 @@
{
// If the element is already occupied, then we probably don't want to
// overwrite it.
- if(c[l] == Graph::null_vertex()) return false;
+ if(c[l] == graph_traits<Graph>::null_vertex()) return false;
c[l] = v;
return true;
}
@@ -411,7 +411,7 @@
/** Return a null descriptor */
static vertex_descriptor null_vertex()
- { return graph_type::null_vertex(); }
+ { return graph_traits<graph_type>::null_vertex(); }
private:
graph_type _graph;
@@ -525,7 +525,7 @@
#endif
static vertex_descriptor null_vertex()
- { return graph_type::null_vertex(); }
+ { return graph_traits<graph_type>::null_vertex(); }
private:
graph_type* _graph;
Modified: branches/release/boost/graph/named_function_params.hpp
==============================================================================
--- branches/release/boost/graph/named_function_params.hpp (original)
+++ branches/release/boost/graph/named_function_params.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -432,13 +432,13 @@
template <typename ArgType, typename Prop, typename Graph, bool Exists>
struct override_property_t {
typedef ArgType result_type;
- result_type operator()(const Graph& g, const typename boost::add_reference<ArgType>::type a) const {return a;}
+ result_type operator()(const Graph&, const typename boost::add_reference<ArgType>::type a) const {return a;}
};
template <typename ArgType, typename Prop, typename Graph>
struct override_property_t<ArgType, Prop, Graph, false> {
typedef typename boost::property_map<Graph, Prop>::type result_type;
- result_type operator()(const Graph& g, const ArgType& a) const {return get(Prop(), g);}
+ result_type operator()(const Graph& g, const ArgType&) const {return get(Prop(), g);}
};
template <typename ArgPack, typename Tag, typename Prop, typename Graph>
@@ -455,7 +455,7 @@
template <typename ArgPack, typename Tag, typename Prop, typename Graph>
typename override_property_result<ArgPack, Tag, Prop, Graph>::type
- override_property(const ArgPack& ap, const boost::parameter::keyword<Tag>& t, const Graph& g, Prop prop) {
+ override_property(const ArgPack& ap, const boost::parameter::keyword<Tag>& t, const Graph& g, Prop) {
return override_property_t<
typename boost::parameter::value_type<ArgPack, Tag, int>::type,
Prop,
@@ -633,7 +633,7 @@
typedef Q priority_queue_type;
static priority_queue_type
- make_queue(const Graph& g, const ArgPack& ap, KeyT defaultKey, const Q& q) {
+ make_queue(const Graph&, const ArgPack&, KeyT, const Q& q) {
return q;
}
};
@@ -645,7 +645,7 @@
typedef boost::d_ary_heap_indirect<ValueT, 4, index_in_heap_map, typename map_maker<Graph, ArgPack, KeyMapTag, KeyT>::helper::map_type, Compare> priority_queue_type;
static priority_queue_type
- make_queue(const Graph& g, const ArgPack& ap, KeyT defaultKey, const Q& q) {
+ make_queue(const Graph& g, const ArgPack& ap, KeyT defaultKey, const Q&) {
return priority_queue_type(
map_maker<Graph, ArgPack, KeyMapTag, KeyT>::make_map(g, ap, defaultKey),
map_maker<Graph, ArgPack, IndexInHeapMapTag, default_index_in_heap_type>::make_map(g, ap, typename boost::property_traits<index_in_heap_map>::value_type(-1))
Modified: branches/release/boost/graph/named_graph.hpp
==============================================================================
--- branches/release/boost/graph/named_graph.hpp (original)
+++ branches/release/boost/graph/named_graph.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -105,7 +105,7 @@
typedef vertex_name_type argument_type;
typedef VertexProperty result_type;
- VertexProperty operator()(const vertex_name_type& name)
+ VertexProperty operator()(const vertex_name_type&)
{
boost::throw_exception(std::runtime_error("add_vertex: "
"unable to create a vertex from its name"));
Modified: branches/release/boost/graph/properties.hpp
==============================================================================
--- branches/release/boost/graph/properties.hpp (original)
+++ branches/release/boost/graph/properties.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -21,7 +21,7 @@
#include <boost/graph/property_maps/null_property_map.hpp>
#include <boost/graph/graph_traits.hpp>
-#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits.hpp>
#include <boost/limits.hpp>
#include <boost/mpl/and.hpp>
#include <boost/mpl/not.hpp>
@@ -149,13 +149,13 @@
template <typename G, typename R, typename T>
struct property_kind_from_graph<G, R T::*> {
typedef typename boost::mpl::if_<
- boost::is_same<T, typename vertex_bundle_type<G>::type>,
+ boost::is_base_of<T, typename vertex_bundle_type<G>::type>,
vertex_property_tag,
typename boost::mpl::if_<
- boost::is_same<T, typename edge_bundle_type<G>::type>,
+ boost::is_base_of<T, typename edge_bundle_type<G>::type>,
edge_property_tag,
typename boost::mpl::if_<
- boost::is_same<T, typename graph_bundle_type<G>::type>,
+ boost::is_base_of<T, typename graph_bundle_type<G>::type>,
graph_property_tag,
void>::type>::type>::type type;
};
Modified: branches/release/boost/graph/relax.hpp
==============================================================================
--- branches/release/boost/graph/relax.hpp (original)
+++ branches/release/boost/graph/relax.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -49,20 +49,30 @@
Vertex u = source(e, g), v = target(e, g);
typedef typename property_traits<DistanceMap>::value_type D;
typedef typename property_traits<WeightMap>::value_type W;
- D d_u = get(d, u), d_v = get(d, v);
- W w_e = get(w, e);
+ const D d_u = get(d, u);
+ const D d_v = get(d, v);
+ const W& w_e = get(w, e);
- // The redundant gets in the return statements are to ensure that extra
- // floating-point precision in x87 registers does not lead to relax()
- // returning true when the distance did not actually change.
+ // The seemingly redundant comparisons after the distance puts are to
+ // ensure that extra floating-point precision in x87 registers does not
+ // lead to relax() returning true when the distance did not actually
+ // change.
if ( compare(combine(d_u, w_e), d_v) ) {
put(d, v, combine(d_u, w_e));
- put(p, v, u);
- return compare(get(d, v), d_v);
+ if (compare(get(d, v), d_v)) {
+ put(p, v, u);
+ return true;
+ } else {
+ return false;
+ }
} else if (is_undirected && compare(combine(d_v, w_e), d_u)) {
put(d, u, combine(d_v, w_e));
- put(p, u, v);
- return compare(get(d, u), d_u);
+ if (compare(get(d, u), d_u)) {
+ put(p, u, v);
+ return true;
+ } else {
+ return false;
+ }
} else
return false;
}
Modified: branches/release/boost/graph/reverse_graph.hpp
==============================================================================
--- branches/release/boost/graph/reverse_graph.hpp (original)
+++ branches/release/boost/graph/reverse_graph.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -460,7 +460,7 @@
typename enable_if<is_reverse_graph<G>,
detail::underlying_edge_desc_map_type<typename graph_traits<typename G::base_type>::edge_descriptor> >::type
get(edge_underlying_t,
- G& g)
+ G&)
{
return detail::underlying_edge_desc_map_type<typename graph_traits<typename G::base_type>::edge_descriptor>();
}
@@ -468,7 +468,7 @@
template <class G>
typename enable_if<is_reverse_graph<G>, typename graph_traits<typename G::base_type>::edge_descriptor>::type
get(edge_underlying_t,
- G& g,
+ G&,
const typename graph_traits<G>::edge_descriptor& k)
{
return k.underlying_descx;
@@ -477,7 +477,7 @@
template <class G>
typename enable_if<is_reverse_graph<G>, detail::underlying_edge_desc_map_type<typename graph_traits<typename G::base_type>::edge_descriptor> >::type
get(edge_underlying_t,
- const G& g)
+ const G&)
{
return detail::underlying_edge_desc_map_type<typename graph_traits<typename G::base_type>::edge_descriptor>();
}
@@ -485,7 +485,7 @@
template <class G>
typename enable_if<is_reverse_graph<G>, typename graph_traits<typename G::base_type>::edge_descriptor>::type
get(edge_underlying_t,
- const G& g,
+ const G&,
const typename graph_traits<G>::edge_descriptor& k)
{
return k.underlying_descx;
Modified: branches/release/boost/graph/undirected_graph.hpp
==============================================================================
--- branches/release/boost/graph/undirected_graph.hpp (original)
+++ branches/release/boost/graph/undirected_graph.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -10,11 +10,6 @@
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/properties.hpp>
-// NOTE: The retag_property_list is used to "normalize" a proeprty such that
-// any non-property conforming parameter is wrapped in a vertex_bundle
-// property. For example (with bad syntax) retag<property<X>> -> property<X>,
-// but retag<foo> -> property<vertex_bundle_t, foo>.
-
namespace boost
{
struct undirected_graph_tag { };
Modified: branches/release/boost/graph/visitors.hpp
==============================================================================
--- branches/release/boost/graph/visitors.hpp (original)
+++ branches/release/boost/graph/visitors.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -269,7 +269,7 @@
{}
template <typename VertexOrEdge, typename Graph>
- void operator() (VertexOrEdge v, const Graph& g)
+ void operator() (VertexOrEdge v, const Graph&)
{
put (property_map_, v, value_);
}
@@ -292,7 +292,7 @@
inline property_put <PropertyMap, EventTag>
put_property (PropertyMap property_map,
typename property_traits <PropertyMap>::value_type value,
- EventTag tag)
+ EventTag)
{
return property_put <PropertyMap, EventTag> (property_map, value);
}
Modified: branches/release/boost/pending/indirect_cmp.hpp
==============================================================================
--- branches/release/boost/pending/indirect_cmp.hpp (original)
+++ branches/release/boost/pending/indirect_cmp.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -33,14 +33,15 @@
typedef typename boost::property_traits<ReadablePropertyMap>::key_type K;
typedef K first_argument_type;
typedef K second_argument_type;
- typedef T result_type;
+ typedef bool result_type;
inline indirect_cmp(const ReadablePropertyMap& df, const Compare& c = Compare())
: d(df), cmp(c) { }
template <class A, class B>
inline bool
operator()(const A& u, const B& v) const {
- T du = get(d, u), dv = get(d, v);
+ const T& du = get(d, u);
+ const T& dv = get(d, v);
return cmp(du, dv);
}
protected:
Modified: branches/release/boost/pending/property.hpp
==============================================================================
--- branches/release/boost/pending/property.hpp (original)
+++ branches/release/boost/pending/property.hpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -11,6 +11,7 @@
#include <boost/mpl/has_xxx.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits.hpp>
+#include <boost/static_assert.hpp>
namespace boost {
@@ -53,8 +54,8 @@
enum graph_bundle_t {graph_bundle};
// Code to look up one property in a property list:
- template <typename PList, typename PropName>
- struct lookup_one_property_internal {BOOST_STATIC_CONSTANT(bool, found = false);};
+ template <typename PList, typename PropName, typename Enable = void>
+ struct lookup_one_property_internal {BOOST_STATIC_CONSTANT(bool, found = false); typedef void type;};
// Special-case properties (vertex_all, edge_all, graph_all)
#define BGL_ALL_PROP(tag) \
@@ -93,8 +94,14 @@
private: \
typedef lookup_one_property_internal<Base, BOOST_JOIN(kind, _bundle_t)> base_type; \
public: \
- static typename base_type::type& lookup(property<Tag, T, Base>& p, BOOST_JOIN(kind, _bundle_t)) {return base_type::lookup(p.m_base, BOOST_JOIN(kind, _bundle_t)());} \
- static const typename base_type::type& lookup(const property<Tag, T, Base>& p, BOOST_JOIN(kind, _bundle_t)) {return base_type::lookup(p.m_base, BOOST_JOIN(kind, _bundle_t)());} \
+ template <typename BundleTag> \
+ static typename lazy_enable_if_c<(base_type::found && (is_same<BundleTag, BOOST_JOIN(kind, _bundle_t)>::value)), \
+ add_reference<typename base_type::type> >::type \
+ lookup(property<Tag, T, Base>& p, BundleTag) {return base_type::lookup(p.m_base, BOOST_JOIN(kind, _bundle_t)());} \
+ template <typename BundleTag> \
+ static typename lazy_enable_if_c<(base_type::found && (is_same<BundleTag, BOOST_JOIN(kind, _bundle_t)>::value)), \
+ add_reference<const typename base_type::type> >::type \
+ lookup(const property<Tag, T, Base>& p, BundleTag) {return base_type::lookup(p.m_base, BOOST_JOIN(kind, _bundle_t)());} \
}; \
BGL_DO_ONE_BUNDLE_TYPE(vertex)
@@ -122,12 +129,14 @@
typedef lookup_one_property_internal<Base, PropName> base_type;
public:
template <typename PL>
- static typename enable_if<is_same<PL, boost::property<Tag, T, Base> >, typename base_type::type&>::type
+ static typename lazy_enable_if<is_same<PL, boost::property<Tag, T, Base> >,
+ add_reference<typename base_type::type> >::type
lookup(PL& prop, const PropName& tag) {
return base_type::lookup(prop.m_base, tag);
}
template <typename PL>
- static typename enable_if<is_same<PL, boost::property<Tag, T, Base> >, const typename base_type::type&>::type
+ static typename lazy_enable_if<is_same<PL, boost::property<Tag, T, Base> >,
+ add_reference<const typename base_type::type> >::type
lookup(const PL& prop, const PropName& tag) {
return base_type::lookup(prop.m_base, tag);
}
@@ -135,12 +144,12 @@
// Pointer-to-member access to bundled properties
#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
- template <typename T, typename R>
- struct lookup_one_property_internal<T, R T::*> {
+ template <typename T, typename TMaybeBase, typename R>
+ struct lookup_one_property_internal<T, R TMaybeBase::*, typename enable_if<is_base_of<TMaybeBase, T> >::type> {
BOOST_STATIC_CONSTANT(bool, found = true);
typedef R type;
- static R& lookup(T& x, R T::*ptr) {return x.*ptr;}
- static const R& lookup(const T& x, R T::*ptr) {return x.*ptr;}
+ static R& lookup(T& x, R TMaybeBase::*ptr) {return x.*ptr;}
+ static const R& lookup(const T& x, R TMaybeBase::*ptr) {return x.*ptr;}
};
#endif
@@ -153,7 +162,8 @@
BOOST_STATIC_CONSTANT(bool, found = (lookup_one_property_internal<T, Tag>::found));
typedef const typename lookup_one_property_internal<T, Tag>::type type;
template <typename U>
- static typename enable_if<is_same<T, U>, const typename lookup_one_property_internal<T, Tag>::type&>::type
+ static typename lazy_enable_if<is_same<T, U>,
+ add_reference<const typename lookup_one_property_internal<T, Tag>::type> >::type
lookup(const U& p, Tag tag) {
return lookup_one_property_internal<T, Tag>::lookup(p, tag);
}
@@ -199,58 +209,6 @@
: mpl::bool_<is_same<T, no_property>::value>
{ };
- /** @internal @name Retag Property List
- * This metafunction is used internally to normalize a property if it is
- * actually modeling a property. Specifically this is used in Boost.Graph
- * to map user-provided classes into bundled properties.
- */
- //@{
- // One base case of the recursive form (see below). This matches any
- // retag request that does not include a property<...> or no_property as
- // the FinalType. This is used for generating bundles in Boost.Graph.
- template<typename FinalTag, typename FinalType>
- struct retag_property_list
- {
- typedef property<FinalTag, FinalType> type;
- typedef FinalType retagged;
- };
-
- // Recursively retag the nested property list.
- template<typename FinalTag, typename Tag, typename T, typename Base>
- struct retag_property_list<FinalTag, property<Tag, T, Base> >
- {
- private:
- typedef retag_property_list<FinalTag, Base> next;
-
- public:
- typedef property<Tag, T, typename next::type> type;
- typedef typename next::retagged retagged;
- };
-
- // This base case will correctly deduce the final property type if the
- // retagged property is given in property form. This should not hide
- // the base case below.
- // NOTE: This addresses a problem of layering bundled properties in the BGL
- // where multiple retaggings will fail to deduce the correct retagged
- // type.
- template<typename FinalTag, typename FinalType>
- struct retag_property_list<FinalTag, property<FinalTag, FinalType> >
- {
- public:
- typedef property<FinalTag, FinalType> type;
- typedef FinalType retagged;
- };
-
- // A final base case of the retag_property_list, this will terminate a
- // properly structured list.
- template<typename FinalTag>
- struct retag_property_list<FinalTag, no_property>
- {
- typedef no_property type;
- typedef no_property retagged;
- };
- //@}
-
template <typename PList, typename Tag>
class lookup_one_property_f;
Modified: branches/release/libs/graph/doc/compressed_sparse_row.html
==============================================================================
--- branches/release/libs/graph/doc/compressed_sparse_row.html (original)
+++ branches/release/libs/graph/doc/compressed_sparse_row.html 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -101,8 +101,8 @@
<pre>
namespace boost {
-template<typename Directed = directedS, typename VertexProperty = void,
- typename EdgeProperty = void, typename GraphProperty = no_property,
+template<typename Directed = directedS, typename VertexProperty = no_property,
+ typename EdgeProperty = no_property, typename GraphProperty = no_property,
typename Vertex = std::size_t, typename EdgeIndex = Vertex>
class compressed_sparse_row_graph
{
Modified: branches/release/libs/graph/doc/dijkstra_shortest_paths.html
==============================================================================
--- branches/release/libs/graph/doc/dijkstra_shortest_paths.html (original)
+++ branches/release/libs/graph/doc/dijkstra_shortest_paths.html 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -330,7 +330,9 @@
<blockquote>
The <tt>inf</tt> object must be the greatest value of any <tt>D</tt> object.
That is, <tt>compare(d, inf) == true</tt> for any <tt>d != inf</tt>.
- The type <tt>D</tt> is the value type of the <tt>DistanceMap</tt>.<br>
+ The type <tt>D</tt> is the value type of the <tt>DistanceMap</tt>. Edges
+ are assumed to have a weight less than (using <tt>distance_compare</tt> for
+ comparison) this value.<br>
<b>Default:</b> <tt>std::numeric_limits<D>::max()</tt><br>
<b>Python</b>: Unsupported parameter.
Modified: branches/release/libs/graph/doc/dijkstra_shortest_paths_no_color_map.html
==============================================================================
--- branches/release/libs/graph/doc/dijkstra_shortest_paths_no_color_map.html (original)
+++ branches/release/libs/graph/doc/dijkstra_shortest_paths_no_color_map.html 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -69,7 +69,7 @@
</P>
<P>
- <tt>dijkstra_shortest_paths_no_color_map</tt> differs from the original <tt>dijkstra_shortest_paths</tt> algorithm by not using a color map to identify vertices as discovered or undiscovered. Instead, this is done with the distance map: a vertex <i>u</i> such that <i>distance_compare(distance_map[u], distance_infinity) == false</i> is considered to be undiscovered.
+ <tt>dijkstra_shortest_paths_no_color_map</tt> differs from the original <tt>dijkstra_shortest_paths</tt> algorithm by not using a color map to identify vertices as discovered or undiscovered. Instead, this is done with the distance map: a vertex <i>u</i> such that <i>distance_compare(distance_map[u], distance_infinity) == false</i> is considered to be undiscovered. Note that this means that edges with infinite weight will not work correctly in this algorithm.
</P>
<P>
@@ -116,10 +116,6 @@
<td valign="top">
<pre>
DIJKSTRA(<i>G</i>, <i>s</i>, <i>w</i>)
- <b>for</b> each vertex <i>u in V</i> <b>(This loop is not run in dijkstra_shortest_paths_no_color_map_no_init)</b>
- <i>d[u] := infinity</i>
- <i>p[u] := u</i>
- <b>end for</b>
<i>d[s] := 0</i>
INSERT(<i>Q</i>, <i>s</i>)
<b>while</b> (<i>Q != Ø</i>)
@@ -141,10 +137,6 @@
<td valign="top">
<pre>
-initialize vertex <i>u</i>
-
-
-
discover vertex <i>s</i>
@@ -293,7 +285,9 @@
<blockquote>
The <tt>distance_infinity</tt> object must be the greatest value of any <tt>D</tt> object.
That is, <tt>distance_compare(d, distance_infinity) == true</tt> for any <tt>d != distance_infinity</tt>.
- The type <tt>D</tt> is the value type of the <tt>DistanceMap</tt>.<br>
+ The type <tt>D</tt> is the value type of the <tt>DistanceMap</tt>. All edges
+ are assumed to have weight less than (by <tt>distance_compare</tt>) this
+ value.<br>
<b>Default:</b> <tt>std::numeric_limits<D>::max()</tt><br>
</blockquote>
Modified: branches/release/libs/graph/doc/grid_graph.html
==============================================================================
--- branches/release/libs/graph/doc/grid_graph.html (original)
+++ branches/release/libs/graph/doc/grid_graph.html 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -81,13 +81,13 @@
</pre>
<ul>
<li>
- <tt>Dimensions</tt> - Number of dimensions in the graph, <b>must be greater than 2</b>
+ <tt>Dimensions</tt> - Number of dimensions in the graph
</li>
<li>
- <tt>VertexIndex</tt> - Type used for vertex indices, defaults to std::size_t
+ <tt>VertexIndex</tt> - Type used for vertex indices, defaults to <tt>std::size_t</tt>
</li>
<li>
- <tt>EdgeIndex</tt> - Type used for edge indices, defaults to the same type as VertexIndex
+ <tt>EdgeIndex</tt> - Type used for edge indices, defaults to the same type as <tt>VertexIndex</tt>
</li>
</ul>
Modified: branches/release/libs/graph/doc/gursoy_atun_layout.html
==============================================================================
--- branches/release/libs/graph/doc/gursoy_atun_layout.html (original)
+++ branches/release/libs/graph/doc/gursoy_atun_layout.html 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -161,7 +161,8 @@
IN: <tt>VertexIndexMap vertex_index_map</tt>
<blockquote>
This maps each vertex to an integer in the range <tt>[0,
- num_vertices(g))</tt>.
+ num_vertices(g))</tt>. This is only necessary when no
+ displacement map is provided.
The type <tt>VertexIndexMap</tt> must be a model of <a
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a>. The value type of the map must be an integer type. The
@@ -176,9 +177,7 @@
IN: <tt>EdgeWeightMap weight</tt>
<blockquote>
- This maps each edge to an weight.
- num_vertices(g))</tt>. This is only necessary when no
- displacement map is provided.
+ This maps each edge to a weight.
The type <tt>EdgeWeightMap</tt> must be a model of <a
href="../../property_map/doc/ReadablePropertyMap.html">Readable Property
Map</a>. The value type of the map must be an floating-point type
@@ -221,7 +220,7 @@
<b>Default:</b> <tt>get(vertex_index, g)</tt>
Note: if you use this default, make sure your graph has
an internal <tt>vertex_index</tt> property. For example,
- <tt>adjacenty_list</tt> with <tt>VertexList=listS</tt> does
+ <tt>adjacency_list</tt> with <tt>VertexList=listS</tt> does
not have an internal <tt>vertex_index</tt> property.
</blockquote>
Modified: branches/release/libs/graph/doc/sorted_erdos_renyi_gen.html
==============================================================================
--- branches/release/libs/graph/doc/sorted_erdos_renyi_gen.html (original)
+++ branches/release/libs/graph/doc/sorted_erdos_renyi_gen.html 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -63,7 +63,7 @@
href="adjacency_list.html"><tt>adjacency_list</tt></a> or other graph
structure with iterator-based initialization. An Erdös-Renyi
graph <em>G = (n, p)</em> is a graph with <em>n</em> vertices
-that. The probability of having an edge <em>(u, v)</em> in <em>G</em>
+such that the probability of having an edge <em>(u, v)</em> in <em>G</em>
is <em>p</em> for any vertices <em>u</em> and <em>v</em>. Typically,
there are no self-loops, but the generator can optionally introduce
self-loops with probability <em>p</em>.</p>
@@ -93,7 +93,7 @@
Constructs an Erdös-Renyi generator iterator that creates a
graph with <tt>n</tt> vertices and a given <tt>probability</tt> of the
total number of edges that a simple graph may have.
-<tt>probability</tt>. Random vertices and edges are selected using the
+Random vertices and edges are selected using the
random number generator <tt>gen</tt>. Self-loops are permitted only when
<tt>allow_self_loops</tt> is <tt>true</tt>.
</blockquote>
Modified: branches/release/libs/graph/example/Jamfile.v2
==============================================================================
--- branches/release/libs/graph/example/Jamfile.v2 (original)
+++ branches/release/libs/graph/example/Jamfile.v2 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -35,9 +35,11 @@
exe bfs-example2 : bfs-example2.cpp ;
exe dfs-example : dfs-example.cpp ;
exe adjacency_list_io : adjacency_list_io.cpp ;
-exe strong_components : strong_components.cpp ../build//boost_graph ;
-exe strong-components : strong-components.cpp ;
exe undirected_adjacency_list : undirected_adjacency_list.cpp ;
exe directed_graph : directed_graph.cpp ;
exe undirected_graph : undirected_graph.cpp ;
exe two_graphs_common_spanning_trees : two_graphs_common_spanning_trees.cpp ;
+exe strong_components : strong_components.cpp ../build//boost_graph ;
+exe strong-components : strong-components.cpp ;
+exe subgraph : subgraph.cpp ;
+exe subgraph_properties : subgraph_properties.cpp ;
Modified: branches/release/libs/graph/example/subgraph_properties.cpp
==============================================================================
--- branches/release/libs/graph/example/subgraph_properties.cpp (original)
+++ branches/release/libs/graph/example/subgraph_properties.cpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -69,20 +69,20 @@
std::cout << std::endl << "After initializing properties for G1:" << std::endl;
std::cout << " Global and local properties for vertex G0[C]..." << std::endl;
- std::cout << " G0[C]= " << boost::get(vertex_name, G0, C) << std::endl;// prints: "G0[C]= C"
- std::cout << " G1[A1]= " << boost::get(vertex_name, G1, A1) << std::endl;// prints: "G1[A1]= A1"
+ std::cout << " G0[C]= " << boost::get(vertex_name, G0, vertex(C, G0)) << std::endl;// prints: "G0[C]= C"
+ std::cout << " G1[A1]= " << boost::get(vertex_name, G1, vertex(A1, G1)) << std::endl;// prints: "G1[A1]= A1"
name1[B1] = "B1";
std::cout << " Global and local properties for vertex G0[E]..." << std::endl;
- std::cout << " G0[E]= " << boost::get(vertex_name, G0, E) << std::endl;// prints: "G0[E]= E"
- std::cout << " G1[B1]= " << boost::get(vertex_name, G1, B1) << std::endl;// prints: "G1[B1]= B1"
+ std::cout << " G0[E]= " << boost::get(vertex_name, G0, vertex(E, G0)) << std::endl;// prints: "G0[E]= E"
+ std::cout << " G1[B1]= " << boost::get(vertex_name, G1, vertex(B1, G1)) << std::endl;// prints: "G1[B1]= B1"
name1[C1] = "C1";
std::cout << " Global and local properties for vertex G0[F]..." << std::endl;
- std::cout << " G0[F]= " << boost::get(vertex_name, G0, F) << std::endl;// prints: "G0[F]= F"
- std::cout << " G1[C1]= " << boost::get(vertex_name, G1, C1) << std::endl;// prints: "G1[C1]= C1"
+ std::cout << " G0[F]= " << boost::get(vertex_name, G0, vertex(F, G0)) << std::endl;// prints: "G0[F]= F"
+ std::cout << " G1[C1]= " << boost::get(vertex_name, G1, vertex(C1, G1)) << std::endl;// prints: "G1[C1]= C1"
Graph& G2 = G0.create_subgraph();
enum { A2, B2 }; // for conveniently refering to vertices in G2
@@ -95,15 +95,15 @@
std::cout << std::endl << std::endl << "After initializing properties for G2:" << std::endl;
std::cout << " Global and local properties for vertex G0[A]" << std::endl;
- std::cout << " G0[A]= " << boost::get(vertex_name, G0, A) << std::endl;// prints: "G0[A]= A"
- std::cout << " G2[A2]= " << boost::get(vertex_name, G2, A2) << std::endl;// prints: "G2[A2]= A2"
+ std::cout << " G0[A]= " << boost::get(vertex_name, G0, vertex(A, G0)) << std::endl;// prints: "G0[A]= A"
+ std::cout << " G2[A2]= " << boost::get(vertex_name, G2, vertex(A2, G2)) << std::endl;// prints: "G2[A2]= A2"
name2[B2] = "B2";
std::cout << " Global and local properties for vertex G0[C]..." << std::endl;
- std::cout << " G0[C]= " << boost::get(vertex_name, G0, C) << std::endl;// prints: "G0[C]= C"
- std::cout << " G1[A1]= " << boost::get(vertex_name, G1, A1) << std::endl;// prints: "G1[A1]= A1"
- std::cout << " G2[B2]= " << boost::get(vertex_name, G2, B2) << std::endl;// prints: "G2[B2]= B2"
+ std::cout << " G0[C]= " << boost::get(vertex_name, G0, vertex(C, G0)) << std::endl;// prints: "G0[C]= C"
+ std::cout << " G1[A1]= " << boost::get(vertex_name, G1, vertex(A1, G1)) << std::endl;// prints: "G1[A1]= A1"
+ std::cout << " G2[B2]= " << boost::get(vertex_name, G2, vertex(B2, G2)) << std::endl;// prints: "G2[B2]= B2"
return 0;
}
Modified: branches/release/libs/graph/test/grid_graph_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/grid_graph_cc.cpp (original)
+++ branches/release/libs/graph/test/grid_graph_cc.cpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -12,14 +12,13 @@
#include <boost/graph/grid_graph.hpp>
#include <boost/concept/assert.hpp>
-#define DIMENSIONS 3
using namespace boost;
-int main (int, char*[]) {
-
- typedef grid_graph<DIMENSIONS> Graph;
- typedef graph_traits<Graph>::vertex_descriptor Vertex;
- typedef graph_traits<Graph>::edge_descriptor Edge;
+template <unsigned int Dims>
+void check() {
+ typedef grid_graph<Dims> Graph;
+ typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
+ typedef typename graph_traits<Graph>::edge_descriptor Edge;
BOOST_CONCEPT_ASSERT((BidirectionalGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT((VertexListGraphConcept<Graph> ));
@@ -29,6 +28,14 @@
BOOST_CONCEPT_ASSERT((AdjacencyMatrixConcept<Graph> ));
BOOST_CONCEPT_ASSERT((ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
BOOST_CONCEPT_ASSERT((ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> ));
+}
+
+int main (int, char*[]) {
+ check<0>();
+ check<1>();
+ check<2>();
+ check<3>();
+ check<4>();
return (0);
}
Modified: branches/release/libs/graph/test/grid_graph_test.cpp
==============================================================================
--- branches/release/libs/graph/test/grid_graph_test.cpp (original)
+++ branches/release/libs/graph/test/grid_graph_test.cpp 2012-09-28 14:34:12 EDT (Fri, 28 Sep 2012)
@@ -17,8 +17,6 @@
#include <boost/random.hpp>
#include <boost/test/minimal.hpp>
-#define DIMENSIONS 3
-
using namespace boost;
// Function that prints a vertex to std::cout
@@ -28,11 +26,11 @@
std::cout << "(";
for (std::size_t dimension_index = 0;
- dimension_index < DIMENSIONS;
+ dimension_index < vertex_to_print.size();
++dimension_index) {
std::cout << vertex_to_print[dimension_index];
- if (dimension_index != (DIMENSIONS - 1)) {
+ if (dimension_index != (vertex_to_print.size() - 1)) {
std::cout << ", ";
}
}
@@ -40,31 +38,23 @@
std::cout << ")";
}
-int test_main(int argc, char* argv[]) {
-
- std::size_t random_seed = time(0);
-
- if (argc > 1) {
- random_seed = lexical_cast<std::size_t>(argv[1]);
- }
-
- minstd_rand generator(random_seed);
-
- typedef grid_graph<DIMENSIONS> Graph;
- typedef graph_traits<Graph>::vertices_size_type vertices_size_type;
- typedef graph_traits<Graph>::edges_size_type edges_size_type;
+template <unsigned int Dims>
+void do_test(minstd_rand& generator) {
+ typedef grid_graph<Dims> Graph;
+ typedef typename graph_traits<Graph>::vertices_size_type vertices_size_type;
+ typedef typename graph_traits<Graph>::edges_size_type edges_size_type;
- typedef graph_traits<Graph>::vertex_descriptor vertex_descriptor;
- typedef graph_traits<Graph>::edge_descriptor edge_descriptor;
+ typedef typename graph_traits<Graph>::vertex_descriptor vertex_descriptor;
+ typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
- std::cout << "Dimensions: " << DIMENSIONS << ", lengths: ";
+ std::cout << "Dimensions: " << Dims << ", lengths: ";
// Randomly generate the dimension lengths (3-10) and wrapping
- array<Graph::vertices_size_type, DIMENSIONS> lengths;
- array<bool, DIMENSIONS> wrapped;
+ boost::array<vertices_size_type, Dims> lengths;
+ boost::array<bool, Dims> wrapped;
- for (int dimension_index = 0;
- dimension_index < DIMENSIONS;
+ for (unsigned int dimension_index = 0;
+ dimension_index < Dims;
++dimension_index) {
lengths[dimension_index] = 3 + (generator() % 8);
wrapped[dimension_index] = ((generator() % 2) == 0);
@@ -78,8 +68,8 @@
Graph graph(lengths, wrapped);
// Verify dimension lengths and wrapping
- for (int dimension_index = 0;
- dimension_index < DIMENSIONS;
+ for (unsigned int dimension_index = 0;
+ dimension_index < Dims;
++dimension_index) {
BOOST_REQUIRE(graph.length(dimension_index) == lengths[dimension_index]);
BOOST_REQUIRE(graph.wrapped(dimension_index) == wrapped[dimension_index]);
@@ -107,8 +97,8 @@
vertices_size_type current_index =
get(boost::vertex_index, graph, current_vertex);
- for (int dimension_index = 0;
- dimension_index < DIMENSIONS;
+ for (unsigned int dimension_index = 0;
+ dimension_index < Dims;
++dimension_index) {
BOOST_REQUIRE(/*(current_vertex[dimension_index] >= 0) && */ // Always true
(current_vertex[dimension_index] < lengths[dimension_index]));
@@ -205,6 +195,23 @@
}
BOOST_REQUIRE(edge_count == num_edges(graph));
+}
+
+int test_main(int argc, char* argv[]) {
+
+ std::size_t random_seed = time(0);
+
+ if (argc > 1) {
+ random_seed = lexical_cast<std::size_t>(argv[1]);
+ }
+
+ minstd_rand generator(random_seed);
+
+ do_test<0>(generator);
+ do_test<1>(generator);
+ do_test<2>(generator);
+ do_test<3>(generator);
+ do_test<4>(generator);
return (0);
}
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk