Boost logo

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&lt;typename Directed = directedS, typename VertexProperty = void,
- typename EdgeProperty = void, typename GraphProperty = no_property,
+template&lt;typename Directed = directedS, typename VertexProperty = no_property,
+ typename EdgeProperty = no_property, typename GraphProperty = no_property,
          typename Vertex = std::size_t, typename EdgeIndex = Vertex&gt;
 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&lt;D&gt;::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 != &Oslash;</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&lt;D&gt;::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&ouml;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&ouml;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