|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r78641 - 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/container boost/date_time boost/date_time/posix_time boost/detail boost/dynamic_bitset boost/function boost/functional 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/planar_detail boost/icl boost/io boost/iostreams boost/iterator boost/numeric/ublas boost/pool boost/preprocessor boost/program_options boost/property_map boost/property_tree boost/python boost/range boost/ratio boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/statechart boost/tr1 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/container libs/date_time libs/date_time/data libs/date_time/example/gregorian libs/date_time/example/local_time libs/date_time/example/posix_time libs/date_time/example/tutorial libs/date_time/test/posix_time libs/date_time/xmldoc libs/detail libs/function libs/functional 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/icl libs/icl/doc libs/icl/doc/html libs/icl/doc/html/header/boost/icl libs/icl/test libs/icl/test/test_doc_code_ libs/io libs/io/doc libs/iostreams libs/iterator 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/range libs/ratio libs/serialization libs/serialization/example libs/serialization/src libs/serialization/test libs/signals 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/timer libs/tr1 libs/typeof/doc libs/unordered libs/utility 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-05-26 14:56:40
Author: jewillco
Date: 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
New Revision: 78641
URL: http://svn.boost.org/trac/boost/changeset/78641
Log:
Merged in more trunk bug fixes for Boost.Graph and Boost.PropertyMap
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/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/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/archive/ (props changed)
branches/release/boost/array.hpp (props changed)
branches/release/boost/concept_check.hpp (props changed)
branches/release/boost/container/ (props changed)
branches/release/boost/current_function.hpp (props changed)
branches/release/boost/date_time/c_time.hpp (props changed)
branches/release/boost/date_time/date_formatting.hpp (props changed)
branches/release/boost/date_time/filetime_functions.hpp (props changed)
branches/release/boost/date_time/gregorian_calendar.ipp (props changed)
branches/release/boost/date_time/posix_time/time_serialize.hpp (props changed)
branches/release/boost/date_time/strings_from_facet.hpp (props changed)
branches/release/boost/date_time/time_facet.hpp (props changed)
branches/release/boost/date_time/tz_db_base.hpp (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/dynamic_bitset/dynamic_bitset.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/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/icl/ (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/math_fwd.hpp (props changed)
branches/release/boost/numeric/ublas/ (props changed)
branches/release/boost/numeric/ublas/functional.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/range/ (props changed)
branches/release/boost/ratio/ (props changed)
branches/release/boost/regex.h (props changed)
branches/release/boost/regex_fwd.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/timer.hpp (props changed)
branches/release/boost/token_functions.hpp (props changed)
branches/release/boost/tr1/ (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/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/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/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/container/ (props changed)
branches/release/libs/date_time/ (props changed)
branches/release/libs/date_time/data/date_time_zonespec.csv (props changed)
branches/release/libs/date_time/example/gregorian/days_between_new_years.cpp (props changed)
branches/release/libs/date_time/example/gregorian/days_since_year_start.cpp (props changed)
branches/release/libs/date_time/example/gregorian/days_till_new_year.cpp (props changed)
branches/release/libs/date_time/example/gregorian/month_add.cpp (props changed)
branches/release/libs/date_time/example/local_time/flight.cpp (props changed)
branches/release/libs/date_time/example/local_time/local_date_time.cpp (props changed)
branches/release/libs/date_time/example/posix_time/print_hours.cpp (props changed)
branches/release/libs/date_time/example/posix_time/time_math.cpp (props changed)
branches/release/libs/date_time/example/tutorial/io_tutorial.cpp (props changed)
branches/release/libs/date_time/test/posix_time/testtime_facet.cpp (props changed)
branches/release/libs/date_time/test/posix_time/testtime_input_facet.cpp (props changed)
branches/release/libs/date_time/xmldoc/date_class.xml (props changed)
branches/release/libs/date_time/xmldoc/usage_examples.xml (props changed)
branches/release/libs/detail/ (props changed)
branches/release/libs/function/ (props changed)
branches/release/libs/functional/ (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/icl/ (props changed)
branches/release/libs/icl/doc/ (props changed)
branches/release/libs/icl/doc/html/ (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/io/ (props changed)
branches/release/libs/io/doc/ (props changed)
branches/release/libs/iostreams/ (props changed)
branches/release/libs/iterator/ (props changed)
branches/release/libs/libraries.htm (props changed)
branches/release/libs/maintainers.txt (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/range/ (props changed)
branches/release/libs/ratio/ (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/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/timer/ (props changed)
branches/release/libs/tr1/ (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/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/adjacency_list.hpp | 12 +++---
branches/release/boost/graph/bron_kerbosch_all_cliques.hpp | 1
branches/release/boost/graph/chrobak_payne_drawing.hpp | 1
branches/release/boost/graph/clustering_coefficient.hpp | 2
branches/release/boost/graph/compressed_sparse_row_graph.hpp | 14 ++++----
branches/release/boost/graph/detail/adjacency_list.hpp | 35 +++++++++-------------
branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp | 1
branches/release/boost/graph/directed_graph.hpp | 1
branches/release/boost/graph/eccentricity.hpp | 2
branches/release/boost/graph/graph_archetypes.hpp | 6 +++
branches/release/boost/graph/graph_test.hpp | 10 +++---
branches/release/boost/graph/graphviz.hpp | 1
branches/release/boost/graph/is_kuratowski_subgraph.hpp | 5 +-
branches/release/boost/graph/is_straight_line_drawing.hpp | 2
branches/release/boost/graph/isomorphism.hpp | 15 ++++++++-
branches/release/boost/graph/make_connected.hpp | 2
branches/release/boost/graph/matrix_as_graph.hpp | 2
branches/release/boost/graph/max_cardinality_matching.hpp | 1
branches/release/boost/graph/named_function_params.hpp | 10 +++++-
branches/release/boost/graph/planar_canonical_ordering.hpp | 2
branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp | 2
branches/release/boost/graph/planar_face_traversal.hpp | 5 ++
branches/release/boost/graph/reverse_graph.hpp | 54 ++++++++++++++++++++++++++--------
branches/release/boost/graph/stanford_graph.hpp | 8 +++-
branches/release/boost/graph/stoer_wagner_min_cut.hpp | 6 ++-
branches/release/boost/graph/subgraph.hpp | 14 +++++++-
branches/release/boost/graph/undirected_graph.hpp | 1
branches/release/boost/graph/vector_as_graph.hpp | 1
branches/release/boost/property_map/dynamic_property_map.hpp | 62 +++++++++++++--------------------------
branches/release/libs/graph/doc/prim_minimum_spanning_tree.html | 13 ++++---
branches/release/libs/graph/example/Jamfile.v2 | 3 +
branches/release/libs/graph/example/astar_maze.cpp | 2
branches/release/libs/graph/example/strong_components.cpp | 15 +++++----
branches/release/libs/graph/test/stoer_wagner_test.cpp | 8 +++-
34 files changed, 181 insertions(+), 138 deletions(-)
Modified: branches/release/boost/graph/adjacency_list.hpp
==============================================================================
--- branches/release/boost/graph/adjacency_list.hpp (original)
+++ branches/release/boost/graph/adjacency_list.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -502,20 +502,20 @@
#define ADJLIST adjacency_list<OEL,VL,D,VP,EP,GP,EL>
template<ADJLIST_PARAMS, typename Tag, typename Value>
- inline void set_property(ADJLIST& g, Tag, Value const& value) {
- get_property_value(*g.m_property, Tag()) = value;
+ inline void set_property(ADJLIST& g, Tag tag, Value const& value) {
+ get_property_value(*g.m_property, tag) = value;
}
template<ADJLIST_PARAMS, typename Tag>
inline typename graph_property<ADJLIST, Tag>::type&
- get_property(ADJLIST& g, Tag) {
- return get_property_value(*g.m_property, Tag());
+ get_property(ADJLIST& g, Tag tag) {
+ return get_property_value(*g.m_property, tag);
}
template<ADJLIST_PARAMS, typename Tag>
inline typename graph_property<ADJLIST, Tag>::type const&
- get_property(ADJLIST const& g, Tag) {
- return get_property_value(*g.m_property, Tag());
+ get_property(ADJLIST const& g, Tag tag) {
+ return get_property_value(*g.m_property, tag);
}
// dwa 09/25/00 - needed to be more explicit so reverse_graph would work.
Modified: branches/release/boost/graph/bron_kerbosch_all_cliques.hpp
==============================================================================
--- branches/release/boost/graph/bron_kerbosch_all_cliques.hpp (original)
+++ branches/release/boost/graph/bron_kerbosch_all_cliques.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -270,7 +270,6 @@
{
BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
- BOOST_CONCEPT_ASSERT(( VertexIndexGraphConcept<Graph> ));
BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> )); // Structural requirement only
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
Modified: branches/release/boost/graph/chrobak_payne_drawing.hpp
==============================================================================
--- branches/release/boost/graph/chrobak_payne_drawing.hpp (original)
+++ branches/release/boost/graph/chrobak_payne_drawing.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -13,7 +13,6 @@
#include <list>
#include <stack>
#include <boost/config.hpp>
-#include <boost/utility.hpp> //for next and prior
#include <boost/graph/graph_traits.hpp>
#include <boost/property_map/property_map.hpp>
Modified: branches/release/boost/graph/clustering_coefficient.hpp
==============================================================================
--- branches/release/boost/graph/clustering_coefficient.hpp (original)
+++ branches/release/boost/graph/clustering_coefficient.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -7,7 +7,7 @@
#ifndef BOOST_GRAPH_CLUSTERING_COEFFICIENT_HPP
#define BOOST_GRAPH_CLUSTERING_COEFFICIENT_HPP
-#include <boost/utility.hpp>
+#include <boost/next_prior.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/lookup_edge.hpp>
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-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -41,7 +41,7 @@
#include <boost/graph/properties.hpp>
#include <boost/static_assert.hpp>
#include <boost/functional/hash.hpp>
-#include <boost/utility.hpp>
+#include <boost/next_prior.hpp>
#ifdef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
# error The Compressed Sparse Row graph only supports bundled properties.
@@ -1382,26 +1382,26 @@
// Graph properties
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS, class Tag, class Value>
inline void
-set_property(BOOST_CSR_GRAPH_TYPE& g, Tag, const Value& value)
+set_property(BOOST_CSR_GRAPH_TYPE& g, Tag tag, const Value& value)
{
- get_property_value(g.m_property, Tag()) = value;
+ get_property_value(g.m_property, tag) = value;
}
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS, class Tag>
inline
typename graph_property<BOOST_CSR_GRAPH_TYPE, Tag>::type&
-get_property(BOOST_CSR_GRAPH_TYPE& g, Tag)
+get_property(BOOST_CSR_GRAPH_TYPE& g, Tag tag)
{
- return get_property_value(g.m_property, Tag());
+ return get_property_value(g.m_property, tag);
}
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS, class Tag>
inline
const
typename graph_property<BOOST_CSR_GRAPH_TYPE, Tag>::type&
-get_property(const BOOST_CSR_GRAPH_TYPE& g, Tag)
+get_property(const BOOST_CSR_GRAPH_TYPE& g, Tag tag)
{
- return get_property_value(g.m_property, Tag());
+ return get_property_value(g.m_property, tag);
}
template<BOOST_CSR_GRAPH_TEMPLATE_PARMS>
Modified: branches/release/boost/graph/detail/adjacency_list.hpp
==============================================================================
--- branches/release/boost/graph/detail/adjacency_list.hpp (original)
+++ branches/release/boost/graph/detail/adjacency_list.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -727,8 +727,10 @@
typename Config::OutEdgeList& out_el = g.out_edge_list(source(e, g));
typename Config::OutEdgeList::iterator out_i = out_el.begin();
+ typename Config::EdgeIter edge_iter_to_erase;
for (; out_i != out_el.end(); ++out_i)
if (&(*out_i).get_property() == &p) {
+ edge_iter_to_erase = (*out_i).get_iter();
out_el.erase(out_i);
break;
}
@@ -736,10 +738,10 @@
typename Config::OutEdgeList::iterator in_i = in_el.begin();
for (; in_i != in_el.end(); ++in_i)
if (&(*in_i).get_property() == &p) {
- g.m_edges.erase((*in_i).get_iter());
in_el.erase(in_i);
- return;
+ break;
}
+ g.m_edges.erase(edge_iter_to_erase);
}
};
@@ -760,8 +762,10 @@
no_property* p = (no_property*)e.get_property();
typename Config::OutEdgeList& out_el = g.out_edge_list(source(e, g));
typename Config::OutEdgeList::iterator out_i = out_el.begin();
+ typename Config::EdgeIter edge_iter_to_erase;
for (; out_i != out_el.end(); ++out_i)
if (&(*out_i).get_property() == p) {
+ edge_iter_to_erase = (*out_i).get_iter();
out_el.erase(out_i);
break;
}
@@ -769,10 +773,10 @@
typename Config::OutEdgeList::iterator in_i = in_el.begin();
for (; in_i != in_el.end(); ++in_i)
if (&(*in_i).get_property() == p) {
- g.m_edges.erase((*in_i).get_iter());
in_el.erase(in_i);
- return;
+ break;
}
+ g.m_edges.erase(edge_iter_to_erase);
}
};
@@ -811,6 +815,7 @@
typedef typename EdgeList::value_type StoredEdge;
typename EdgeList::iterator i = el.find(StoredEdge(v)), end = el.end();
+ BOOST_ASSERT ((i != end));
if (i != end) {
g.m_edges.erase((*i).get_iter());
el.erase(i);
@@ -991,24 +996,12 @@
typedef typename Config::graph_type graph_type;
typedef typename Config::edge_parallel_category Cat;
graph_type& g = static_cast<graph_type&>(g_);
- typename Config::OutEdgeList& el = g.out_edge_list(u);
- typename Config::OutEdgeList::iterator
- ei = el.begin(), ei_end = el.end();
- for (; ei != ei_end; /* Increment below */ ) {
- bool is_self_loop = (*ei).get_target() == u;
- // Don't erase from our own incidence list in the case of a self-loop
- // since we're clearing it anyway.
- if (!is_self_loop) {
- detail::erase_from_incidence_list
- (g.out_edge_list((*ei).get_target()), u, Cat());
- typename Config::OutEdgeList::iterator ei_copy = ei;
- ++ei;
- if (!is_self_loop) g.m_edges.erase((*ei_copy).get_iter());
- } else {
- ++ei;
- }
+ while (true) {
+ typename Config::out_edge_iterator ei, ei_end;
+ boost::tie(ei, ei_end) = out_edges(u, g);
+ if (ei == ei_end) break;
+ remove_edge(*ei, g);
}
- g.out_edge_list(u).clear();
}
// O(1) for allow_parallel_edge_tag
// O(log(E/V)) for disallow_parallel_edge_tag
Modified: branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp
==============================================================================
--- branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp (original)
+++ branches/release/boost/graph/detail/compressed_sparse_row_struct.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -44,7 +44,6 @@
#include <boost/graph/graph_selectors.hpp>
#include <boost/static_assert.hpp>
#include <boost/functional/hash.hpp>
-#include <boost/utility.hpp>
namespace boost {
Modified: branches/release/boost/graph/directed_graph.hpp
==============================================================================
--- branches/release/boost/graph/directed_graph.hpp (original)
+++ branches/release/boost/graph/directed_graph.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -7,7 +7,6 @@
#ifndef BOOST_GRAPH_DIRECTED_GRAPH_HPP
#define BOOST_GRAPH_DIRECTED_GRAPH_HPP
-#include <boost/utility.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/properties.hpp>
Modified: branches/release/boost/graph/eccentricity.hpp
==============================================================================
--- branches/release/boost/graph/eccentricity.hpp (original)
+++ branches/release/boost/graph/eccentricity.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -7,7 +7,7 @@
#ifndef BOOST_GRAPH_ECCENTRICITY_HPP
#define BOOST_GRAPH_ECCENTRICITY_HPP
-#include <boost/utility.hpp>
+#include <boost/next_prior.hpp>
#include <boost/config.hpp>
#include <boost/graph/detail/geodesic.hpp>
#include <boost/concept/assert.hpp>
Modified: branches/release/boost/graph/graph_archetypes.hpp
==============================================================================
--- branches/release/boost/graph/graph_archetypes.hpp (original)
+++ branches/release/boost/graph/graph_archetypes.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -53,6 +53,8 @@
typedef void in_edge_iterator;
typedef void vertex_iterator;
typedef void edge_iterator;
+
+ static vertex_descriptor null_vertex() {return vertex_descriptor();}
};
template <typename V, typename D, typename P, typename B>
V source(const typename incidence_graph_archetype<V,D,P,B>::edge_descriptor&,
@@ -105,6 +107,8 @@
typedef void out_edge_iterator;
typedef void vertex_iterator;
typedef void edge_iterator;
+
+ static vertex_descriptor null_vertex() {return vertex_descriptor();}
};
template <typename V, typename D, typename P, typename B>
@@ -154,6 +158,8 @@
typedef void in_edge_iterator;
typedef void edge_iterator;
+
+ static vertex_descriptor null_vertex() {return vertex_descriptor();}
};
template <typename V, typename D, typename P, typename B>
Modified: branches/release/boost/graph/graph_test.hpp
==============================================================================
--- branches/release/boost/graph/graph_test.hpp (original)
+++ branches/release/boost/graph/graph_test.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -325,10 +325,10 @@
template <typename PropVal, typename PropertyTag>
void test_readable_vertex_property_graph
- (const std::vector<PropVal>& vertex_prop, PropertyTag, const Graph& g)
+ (const std::vector<PropVal>& vertex_prop, PropertyTag tag, const Graph& g)
{
typedef typename property_map<Graph, PropertyTag>::const_type const_Map;
- const_Map pmap = get(PropertyTag(), g);
+ const_Map pmap = get(tag, g);
typename std::vector<PropVal>::const_iterator i = vertex_prop.begin();
for (typename boost::graph_traits<Graph>::vertex_iterator
@@ -339,7 +339,7 @@
++bgl_first_9) {
//BGL_FORALL_VERTICES_T(v, g, Graph) {
typename property_traits<const_Map>::value_type
- pval1 = get(pmap, v), pval2 = get(PropertyTag(), g, v);
+ pval1 = get(pmap, v), pval2 = get(tag, g, v);
BOOST_CHECK(pval1 == pval2);
BOOST_CHECK(pval1 == *i++);
}
@@ -350,7 +350,7 @@
(const std::vector<PropVal>& vertex_prop, PropertyTag tag, Graph& g)
{
typedef typename property_map<Graph, PropertyTag>::type PMap;
- PMap pmap = get(PropertyTag(), g);
+ PMap pmap = get(tag, g);
typename std::vector<PropVal>::const_iterator i = vertex_prop.begin();
for (typename boost::graph_traits<Graph>::vertex_iterator
bgl_first_9 = vertices(g).first, bgl_last_9 = vertices(g).second;
@@ -368,7 +368,7 @@
typename std::vector<PropVal>::const_iterator j = vertex_prop.begin();
BGL_FORALL_VERTICES_T(v, g, Graph)
- put(PropertyTag(), g, v, *j++);
+ put(tag, g, v, *j++);
test_readable_vertex_property_graph(vertex_prop, tag, g);
}
Modified: branches/release/boost/graph/graphviz.hpp
==============================================================================
--- branches/release/boost/graph/graphviz.hpp (original)
+++ branches/release/boost/graph/graphviz.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -29,6 +29,7 @@
#include <boost/lexical_cast.hpp>
#include <boost/algorithm/string/replace.hpp>
#include <boost/xpressive/xpressive_static.hpp>
+#include <boost/foreach.hpp>
namespace boost {
Modified: branches/release/boost/graph/is_kuratowski_subgraph.hpp
==============================================================================
--- branches/release/boost/graph/is_kuratowski_subgraph.hpp (original)
+++ branches/release/boost/graph/is_kuratowski_subgraph.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -9,7 +9,6 @@
#define __IS_KURATOWSKI_SUBGRAPH_HPP__
#include <boost/config.hpp>
-#include <boost/utility.hpp> //for next/prior
#include <boost/tuple/tuple.hpp> //for tie
#include <boost/property_map/property_map.hpp>
#include <boost/graph/properties.hpp>
@@ -301,11 +300,11 @@
if (target_graph == detail::tg_k_5)
{
- return isomorphism(K_5,contracted_graph);
+ return boost::isomorphism(K_5,contracted_graph);
}
else //target_graph == tg_k_3_3
{
- return isomorphism(K_3_3,contracted_graph);
+ return boost::isomorphism(K_3_3,contracted_graph);
}
Modified: branches/release/boost/graph/is_straight_line_drawing.hpp
==============================================================================
--- branches/release/boost/graph/is_straight_line_drawing.hpp (original)
+++ branches/release/boost/graph/is_straight_line_drawing.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -9,7 +9,7 @@
#define __IS_STRAIGHT_LINE_DRAWING_HPP__
#include <boost/config.hpp>
-#include <boost/utility.hpp> //for next and prior
+#include <boost/next_prior.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_comparison.hpp>
#include <boost/property_map/property_map.hpp>
Modified: branches/release/boost/graph/isomorphism.hpp
==============================================================================
--- branches/release/boost/graph/isomorphism.hpp (original)
+++ branches/release/boost/graph/isomorphism.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -11,9 +11,9 @@
#include <iterator>
#include <algorithm>
#include <boost/config.hpp>
+#include <boost/assert.hpp>
#include <boost/smart_ptr.hpp>
#include <boost/graph/depth_first_search.hpp>
-#include <boost/utility.hpp>
#include <boost/detail/algorithm.hpp>
#include <boost/pending/indirect_cmp.hpp> // for make_indirect_pmap
#include <boost/concept/assert.hpp>
@@ -135,6 +135,10 @@
bool test_isomorphism()
{
+ // reset isomapping
+ BGL_FORALL_VERTICES_T(v, G1, Graph1)
+ f[v] = graph_traits<Graph2>::null_vertex();
+
{
std::vector<invar1_value> invar1_array;
BGL_FORALL_VERTICES_T(v, G1, Graph1)
@@ -309,7 +313,14 @@
case match_continuation::pos_G2_vertex_loop: {G2_verts = this_k.G2_verts; iter = this_k.iter; dfs_num_k = this_k.dfs_num_k; k.pop_back(); in_S[*G2_verts.first] = false; i = source(*iter, G1); j = target(*iter, G2); goto G2_loop_k;}
case match_continuation::pos_fi_adj_loop: {fi_adj = this_k.fi_adj; iter = this_k.iter; dfs_num_k = this_k.dfs_num_k; k.pop_back(); in_S[*fi_adj.first] = false; i = source(*iter, G1); j = target(*iter, G2); goto fi_adj_loop_k;}
case match_continuation::pos_dfs_num: {k.pop_back(); goto return_point_false;}
- default: assert (!"Bad position"); abort();
+ default: {
+ BOOST_ASSERT(!"Bad position");
+#ifdef UNDER_CE
+ exit(-1);
+#else
+ abort();
+#endif
+ }
}
}
}
Modified: branches/release/boost/graph/make_connected.hpp
==============================================================================
--- branches/release/boost/graph/make_connected.hpp (original)
+++ branches/release/boost/graph/make_connected.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -9,7 +9,7 @@
#define __MAKE_CONNECTED_HPP__
#include <boost/config.hpp>
-#include <boost/utility.hpp> //for next
+#include <boost/next_prior.hpp>
#include <boost/tuple/tuple.hpp> //for tie
#include <boost/graph/connected_components.hpp>
#include <boost/property_map/property_map.hpp>
Modified: branches/release/boost/graph/matrix_as_graph.hpp
==============================================================================
--- branches/release/boost/graph/matrix_as_graph.hpp (original)
+++ branches/release/boost/graph/matrix_as_graph.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -14,7 +14,7 @@
#include <utility>
#include <boost/config.hpp>
#include <boost/operators.hpp>
-#include <boost/int_iterator.hpp>
+#include <boost/pending/detail/int_iterator.hpp>
#include <boost/graph/graph_traits.hpp>
namespace boost {
Modified: branches/release/boost/graph/max_cardinality_matching.hpp
==============================================================================
--- branches/release/boost/graph/max_cardinality_matching.hpp (original)
+++ branches/release/boost/graph/max_cardinality_matching.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -16,7 +16,6 @@
#include <algorithm> // for std::sort and std::stable_sort
#include <utility> // for std::pair
#include <boost/property_map/property_map.hpp>
-#include <boost/utility.hpp> // for boost::tie
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/visitors.hpp>
#include <boost/graph/depth_first_search.hpp>
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-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -15,9 +15,8 @@
#include <boost/ref.hpp>
#include <boost/parameter/name.hpp>
#include <boost/parameter/binding.hpp>
-#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits.hpp>
#include <boost/mpl/not.hpp>
-#include <boost/type_traits/add_reference.hpp>
#include <boost/graph/properties.hpp>
#include <boost/graph/detail/d_ary_heap.hpp>
#include <boost/property_map/property_map.hpp>
@@ -609,6 +608,13 @@
make_priority_queue_from_arg_pack_gen(KeyT defaultKey_) : defaultKey(defaultKey_) { }
+ template <class F>
+ struct result {
+ typedef typename remove_const<typename remove_reference<typename function_traits<F>::arg1_type>::type>::type graph_type;
+ typedef typename remove_const<typename remove_reference<typename function_traits<F>::arg2_type>::type>::type arg_pack_type;
+ typedef typename priority_queue_maker<graph_type, arg_pack_type, KeyT, ValueT, PriorityQueueTag, KeyMapTag, IndexInHeapMapTag, Compare>::priority_queue_type type;
+ };
+
template <class Graph, class ArgPack>
typename priority_queue_maker<Graph, ArgPack, KeyT, ValueT, PriorityQueueTag, KeyMapTag, IndexInHeapMapTag, Compare>::priority_queue_type
operator()(const Graph& g, const ArgPack& ap) const {
Modified: branches/release/boost/graph/planar_canonical_ordering.hpp
==============================================================================
--- branches/release/boost/graph/planar_canonical_ordering.hpp (original)
+++ branches/release/boost/graph/planar_canonical_ordering.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -12,7 +12,7 @@
#include <vector>
#include <list>
#include <boost/config.hpp>
-#include <boost/utility.hpp> //for next and prior
+#include <boost/next_prior.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/property_map/property_map.hpp>
Modified: branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp
==============================================================================
--- branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp (original)
+++ branches/release/boost/graph/planar_detail/boyer_myrvold_impl.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -10,7 +10,7 @@
#include <vector>
#include <list>
-#include <boost/utility.hpp> //for boost::next
+#include <boost/next_prior.hpp>
#include <boost/config.hpp> //for std::min macros
#include <boost/shared_ptr.hpp>
#include <boost/tuple/tuple.hpp>
Modified: branches/release/boost/graph/planar_face_traversal.hpp
==============================================================================
--- branches/release/boost/graph/planar_face_traversal.hpp (original)
+++ branches/release/boost/graph/planar_face_traversal.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -10,8 +10,11 @@
#define __PLANAR_FACE_TRAVERSAL_HPP__
#include <vector>
-#include <boost/utility.hpp> //for next and prior
+#include <set>
+#include <map>
+#include <boost/next_prior.hpp>
#include <boost/graph/graph_traits.hpp>
+#include <boost/graph/properties.hpp>
namespace boost
Modified: branches/release/boost/graph/reverse_graph.hpp
==============================================================================
--- branches/release/boost/graph/reverse_graph.hpp (original)
+++ branches/release/boost/graph/reverse_graph.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -105,6 +105,7 @@
typedef graph_traits<BidirectionalGraph> Traits;
public:
typedef BidirectionalGraph base_type;
+ typedef GraphRef base_ref_type;
// Constructor
reverse_graph(GraphRef g) : m_g(g) {}
@@ -391,14 +392,18 @@
};
template <class BidirGraph, class GRef, class Property>
-typename property_map<reverse_graph<BidirGraph,GRef>, Property>::type
+typename disable_if<
+ is_same<Property, edge_underlying_t>,
+ typename property_map<reverse_graph<BidirGraph,GRef>, Property>::type>::type
get(Property p, reverse_graph<BidirGraph,GRef>& g)
{
return typename property_map<reverse_graph<BidirGraph,GRef>, Property>::type(get(p, g.m_g));
}
template <class BidirGraph, class GRef, class Property>
-typename property_map<reverse_graph<BidirGraph,GRef>, Property>::const_type
+typename disable_if<
+ is_same<Property, edge_underlying_t>,
+ typename property_map<reverse_graph<BidirGraph,GRef>, Property>::const_type>::type
get(Property p, const reverse_graph<BidirGraph,GRef>& g)
{
const BidirGraph& gref = g.m_g; // in case GRef is non-const
@@ -406,9 +411,11 @@
}
template <class BidirectionalGraph, class GRef, class Property, class Key>
-typename property_traits<
- typename property_map<BidirectionalGraph, Property>::const_type
->::value_type
+typename disable_if<
+ is_same<Property, edge_underlying_t>,
+ typename property_traits<
+ typename property_map<reverse_graph<BidirectionalGraph, GRef>, Property>::const_type
+ >::value_type>::type
get(Property p, const reverse_graph<BidirectionalGraph,GRef>& g, const Key& k)
{
return get(get(p, g), k);
@@ -459,19 +466,40 @@
typedef detail::underlying_edge_desc_map_type<ed> const_type;
};
-template <class Graph, class GRef>
-detail::underlying_edge_desc_map_type<typename graph_traits<Graph>::edge_descriptor>
+template <typename T> struct is_reverse_graph: boost::mpl::false_ {};
+template <typename G, typename R> struct is_reverse_graph<reverse_graph<G, R> >: boost::mpl::true_ {};
+
+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 reverse_graph<Graph,GRef>& g)
+ G& g)
{
- return detail::underlying_edge_desc_map_type<typename graph_traits<Graph>::edge_descriptor>();
+ return detail::underlying_edge_desc_map_type<typename graph_traits<typename G::base_type>::edge_descriptor>();
}
-template <class Graph, class GRef>
-typename graph_traits<Graph>::edge_descriptor
+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,
+ const typename graph_traits<G>::edge_descriptor& k)
+{
+ return k.underlying_descx;
+}
+
+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)
+{
+ return detail::underlying_edge_desc_map_type<typename graph_traits<typename G::base_type>::edge_descriptor>();
+}
+
+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 reverse_graph<Graph,GRef>& g,
- const typename graph_traits<reverse_graph<Graph, GRef> >::edge_descriptor& k)
+ const G& g,
+ const typename graph_traits<G>::edge_descriptor& k)
{
return k.underlying_descx;
}
Modified: branches/release/boost/graph/stanford_graph.hpp
==============================================================================
--- branches/release/boost/graph/stanford_graph.hpp (original)
+++ branches/release/boost/graph/stanford_graph.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -318,13 +318,15 @@
class sgb_vertex_util_map
: public boost::put_get_helper<Ref, sgb_vertex_util_map<Tag, Ref> >
{
+ Tag tag;
public:
+ explicit sgb_vertex_util_map(Tag tag = Tag()): tag(tag) {}
typedef boost::lvalue_property_map_tag category;
typedef typename Tag::type value_type;
typedef Vertex* key_type;
typedef Ref reference;
reference operator[](Vertex* v) const {
- return get_util_field(v, Tag());
+ return get_util_field(v, tag);
}
};
@@ -333,13 +335,15 @@
class sgb_edge_util_map
: public boost::put_get_helper<Ref, sgb_edge_util_map<Tag, Ref> >
{
+ Tag tag;
public:
+ explicit sgb_edge_util_map(Tag tag = Tag()): tag(tag) {}
typedef boost::lvalue_property_map_tag category;
typedef typename Tag::type value_type;
typedef Vertex* key_type;
typedef Ref reference;
reference operator[](const sgb_edge& e) const {
- return get_util_field(e._arc, Tag());
+ return get_util_field(e._arc, tag);
}
};
Modified: branches/release/boost/graph/stoer_wagner_min_cut.hpp
==============================================================================
--- branches/release/boost/graph/stoer_wagner_min_cut.hpp (original)
+++ branches/release/boost/graph/stoer_wagner_min_cut.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -20,7 +20,7 @@
#include <boost/graph/detail/d_ary_heap.hpp>
#include <boost/property_map/property_map.hpp>
#include <boost/tuple/tuple.hpp>
-#include <boost/typeof/typeof.hpp>
+#include <boost/utility/result_of.hpp>
namespace boost {
@@ -218,7 +218,9 @@
typedef boost::bgl_named_params<P, T, R> params_type;
BOOST_GRAPH_DECLARE_CONVERTED_PARAMETERS(params_type, params)
- BOOST_AUTO(pq, (boost::detail::make_priority_queue_from_arg_pack_gen<boost::graph::keywords::tag::max_priority_queue, weight_type, vertex_descriptor, std::greater<weight_type> >(choose_param(get_param(params, boost::distance_zero_t()), weight_type(0)))(g, arg_pack)));
+ typedef boost::detail::make_priority_queue_from_arg_pack_gen<boost::graph::keywords::tag::max_priority_queue, weight_type, vertex_descriptor, std::greater<weight_type> > gen_type;
+ gen_type gen(choose_param(get_param(params, boost::distance_zero_t()), weight_type(0)));
+ typename boost::result_of<gen_type(const UndirectedGraph&, const arg_pack_type&)>::type pq = gen(g, arg_pack);
return boost::detail::stoer_wagner_min_cut(g,
weights,
Modified: branches/release/boost/graph/subgraph.hpp
==============================================================================
--- branches/release/boost/graph/subgraph.hpp (original)
+++ branches/release/boost/graph/subgraph.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -24,7 +24,9 @@
#include <boost/static_assert.hpp>
#include <boost/assert.hpp>
-#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits.hpp>
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/or.hpp>
namespace boost {
@@ -778,7 +780,10 @@
{
typedef property_traits<PropertyMap> Traits;
public:
- typedef typename Traits::category category;
+ typedef typename mpl::if_<is_const<typename remove_pointer<GraphPtr>::type>,
+ readable_property_map_tag,
+ typename Traits::category>::type
+ category;
typedef typename Traits::value_type value_type;
typedef typename Traits::key_type key_type;
typedef typename Traits::reference reference;
@@ -813,7 +818,10 @@
{
typedef property_traits<PropertyMap> Traits;
public:
- typedef typename Traits::category category;
+ typedef typename mpl::if_<is_const<typename remove_pointer<GraphPtr>::type>,
+ readable_property_map_tag,
+ typename Traits::category>::type
+ category;
typedef typename Traits::value_type value_type;
typedef typename Traits::key_type key_type;
typedef typename Traits::reference reference;
Modified: branches/release/boost/graph/undirected_graph.hpp
==============================================================================
--- branches/release/boost/graph/undirected_graph.hpp (original)
+++ branches/release/boost/graph/undirected_graph.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -7,7 +7,6 @@
#ifndef BOOST_GRAPH_UNDIRECTED_GRAPH_HPP
#define BOOST_GRAPH_UNDIRECTED_GRAPH_HPP
-#include <boost/utility.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/properties.hpp>
Modified: branches/release/boost/graph/vector_as_graph.hpp
==============================================================================
--- branches/release/boost/graph/vector_as_graph.hpp (original)
+++ branches/release/boost/graph/vector_as_graph.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -79,6 +79,7 @@
typedef typename std::vector<EdgeList>::size_type vertices_size_type;
typedef void edges_size_type;
typedef typename EdgeList::size_type degree_size_type;
+ static V null_vertex() {return V(-1);}
};
template <class EdgeList>
struct edge_property_type< std::vector<EdgeList> >
Modified: branches/release/boost/property_map/dynamic_property_map.hpp
==============================================================================
--- branches/release/boost/property_map/dynamic_property_map.hpp (original)
+++ branches/release/boost/property_map/dynamic_property_map.hpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -117,6 +117,15 @@
namespace detail {
+// Trying to work around VC++ problem that seems to relate to having too many
+// functions named "get"
+template <typename PMap, typename Key>
+typename boost::property_traits<PMap>::reference
+get_wrapper_xxx(const PMap& pmap, const Key& key) {
+ using boost::get;
+ return get(pmap, key);
+}
+
//
// dynamic_property_map_adaptor -
// property-map adaptor to support runtime polymorphism.
@@ -135,32 +144,18 @@
// can be converted to value_type via iostreams.
void do_put(const any& in_key, const any& in_value, mpl::bool_<true>)
{
-#if !(defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95))
using boost::put;
-#endif
key_type key = any_cast<key_type>(in_key);
if (in_value.type() == typeid(value_type)) {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map, key, any_cast<value_type>(in_value));
-#else
- put(property_map, key, any_cast<value_type>(in_value));
-#endif
+ put(property_map_, key, any_cast<value_type>(in_value));
} else {
// if in_value is an empty string, put a default constructed value_type.
std::string v = any_cast<std::string>(in_value);
if (v.empty()) {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map, key, value_type());
-#else
- put(property_map, key, value_type());
-#endif
+ put(property_map_, key, value_type());
} else {
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- boost::put(property_map, key, detail::read_value<value_type>(v));
-#else
- put(property_map, key, detail::read_value<value_type>(v));
-#endif
+ put(property_map_, key, detail::read_value<value_type>(v));
}
}
}
@@ -171,33 +166,19 @@
}
public:
- explicit dynamic_property_map_adaptor(const PropertyMap& property_map)
- : property_map(property_map) { }
+ explicit dynamic_property_map_adaptor(const PropertyMap& property_map_)
+ : property_map_(property_map_) { }
virtual boost::any get(const any& key)
{
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- return boost::get(property_map, any_cast<key_type>(key));
-#else
- using boost::get;
-
- return get(property_map, any_cast<key_type>(key));
-#endif
+ return get_wrapper_xxx(property_map_, any_cast<key_type>(key));
}
virtual std::string get_string(const any& key)
{
-#if defined(__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 95)
- std::ostringstream out;
- out << boost::get(property_map, any_cast<key_type>(key));
- return out.str();
-#else
- using boost::get;
-
std::ostringstream out;
- out << get(property_map, any_cast<key_type>(key));
+ out << get_wrapper_xxx(property_map_, any_cast<key_type>(key));
return out.str();
-#endif
}
virtual void put(const any& in_key, const any& in_value)
@@ -210,11 +191,11 @@
virtual const std::type_info& key() const { return typeid(key_type); }
virtual const std::type_info& value() const { return typeid(value_type); }
- PropertyMap& base() { return property_map; }
- const PropertyMap& base() const { return property_map; }
+ PropertyMap& base() { return property_map_; }
+ const PropertyMap& base() const { return property_map_; }
private:
- PropertyMap property_map;
+ PropertyMap property_map_;
};
} // namespace detail
@@ -243,11 +224,10 @@
template<typename PropertyMap>
dynamic_properties&
- property(const std::string& name, PropertyMap property_map)
+ property(const std::string& name, PropertyMap property_map_)
{
- // Tbd: exception safety
boost::shared_ptr<dynamic_property_map> pm(
- new detail::dynamic_property_map_adaptor<PropertyMap>(property_map));
+ boost::make_shared<detail::dynamic_property_map_adaptor<PropertyMap> >(property_map_));
property_maps.insert(property_maps_type::value_type(name, pm));
return *this;
Modified: branches/release/libs/graph/doc/prim_minimum_spanning_tree.html
==============================================================================
--- branches/release/libs/graph/doc/prim_minimum_spanning_tree.html (original)
+++ branches/release/libs/graph/doc/prim_minimum_spanning_tree.html 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -172,7 +172,9 @@
<a href="../../property_map/doc/ReadablePropertyMap.html">Readable Property Map</a>. The edge descriptor type of
the graph needs to be usable as the key type for the weight
map. The value type for the map must be
- <i>Addable</i> with the value type of the distance map.<br>
+ the same as the value type of the distance map, and that type must be <a
+ href="http://www.sgi.com/tech/stl/LessThanComparable.html">Less Than
+ Comparable</a>.<br>
<b>Default:</b> <tt>get(edge_weight, g)</tt><br>
<b>Python</b>: Must be an <tt>edge_double_map</tt> for the graph.<br>
<b>Python default</b>: <tt>graph.get_edge_double_map("weight")</tt>
@@ -190,7 +192,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.
<br>
<b>Python</b>: Unsupported parameter.
@@ -204,10 +206,9 @@
The type <tt>DistanceMap</tt> must be a model of <a
href="../../property_map/doc/ReadWritePropertyMap.html">Read/Write
Property Map</a>. The vertex descriptor type of the
- graph needs to be usable as the key type of the distance map. The
- value type of the distance map must be <a
- href="http://www.sgi.com/tech/stl/LessThanComparable.html">Less Than
- Comparable</a>.<br>
+ graph needs to be usable as the key type of the distance map, and the value
+ type needs to be the same as the value type of the <tt>weight_map</tt>
+ argument.<br>
<b>Default:</b> <a href="../../property_map/doc/iterator_property_map.html">
<tt>iterator_property_map</tt></a> created from a
<tt>std::vector</tt> of the <tt>WeightMap</tt>'s value type of size
Modified: branches/release/libs/graph/example/Jamfile.v2
==============================================================================
--- branches/release/libs/graph/example/Jamfile.v2 (original)
+++ branches/release/libs/graph/example/Jamfile.v2 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -33,3 +33,6 @@
exe bfs-example : bfs-example.cpp ;
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 ;
Modified: branches/release/libs/graph/example/astar_maze.cpp
==============================================================================
--- branches/release/libs/graph/example/astar_maze.cpp (original)
+++ branches/release/libs/graph/example/astar_maze.cpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -221,7 +221,7 @@
if (x == 0)
output << BARRIER;
// Put the character representing this point in the maze grid.
- vertex_descriptor u = {{x, y}};
+ vertex_descriptor u = {{x, vertices_size_type(y)}};
if (m.solution_contains(u))
output << ".";
else if (m.has_barrier(u))
Modified: branches/release/libs/graph/example/strong_components.cpp
==============================================================================
--- branches/release/libs/graph/example/strong_components.cpp (original)
+++ branches/release/libs/graph/example/strong_components.cpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -46,22 +46,23 @@
using namespace boost;
const char* name = "abcdefghij";
- GraphvizDigraph G;
- read_graphviz("scc.dot", G);
+ adjacency_list<vecS, vecS, directedS> G;
+ dynamic_properties dp;
+ read_graphviz("scc.dot", G, dp);
std::cout << "A directed graph:" << std::endl;
print_graph(G, name);
std::cout << std::endl;
- typedef graph_traits<GraphvizGraph>::vertex_descriptor Vertex;
+ typedef graph_traits<adjacency_list<vecS, vecS, directedS> >::vertex_descriptor Vertex;
std::vector<int> component(num_vertices(G)), discover_time(num_vertices(G));
std::vector<default_color_type> color(num_vertices(G));
std::vector<Vertex> root(num_vertices(G));
- int num = strong_components(G, &component[0],
- root_map(&root[0]).
- color_map(&color[0]).
- discover_time_map(&discover_time[0]));
+ int num = strong_components(G, make_iterator_property_map(component.begin(), get(vertex_index, G)),
+ root_map(make_iterator_property_map(root.begin(), get(vertex_index, G))).
+ color_map(make_iterator_property_map(color.begin(), get(vertex_index, G))).
+ discover_time_map(make_iterator_property_map(discover_time.begin(), get(vertex_index, G))));
std::cout << "Total number of components: " << num << std::endl;
std::vector<int>::size_type i;
Modified: branches/release/libs/graph/test/stoer_wagner_test.cpp
==============================================================================
--- branches/release/libs/graph/test/stoer_wagner_test.cpp (original)
+++ branches/release/libs/graph/test/stoer_wagner_test.cpp 2012-05-26 14:56:37 EDT (Sat, 26 May 2012)
@@ -206,10 +206,12 @@
boost::associative_property_map<std::map<vertex_descriptor, std::size_t> > components(component);
BOOST_CHECK_EQUAL(boost::connected_components(g, components), 1U); // verify the connectedness assumption
- BOOST_AUTO(distances, (boost::make_shared_array_property_map(num_vertices(g), weight_type(0), get(boost::vertex_index, g))));
+ typedef boost::shared_array_property_map<weight_type, boost::property_map<undirected_graph, boost::vertex_index_t>::const_type> distances_type;
+ distances_type distances = boost::make_shared_array_property_map(num_vertices(g), weight_type(0), get(boost::vertex_index, g));
typedef std::vector<vertex_descriptor>::size_type index_in_heap_type;
- BOOST_AUTO(indicesInHeap, (boost::make_shared_array_property_map(num_vertices(g), index_in_heap_type(-1), get(boost::vertex_index, g))));
- boost::d_ary_heap_indirect<vertex_descriptor, 22, BOOST_TYPEOF(indicesInHeap), BOOST_TYPEOF(distances), std::greater<weight_type> > pq(distances, indicesInHeap);
+ typedef boost::shared_array_property_map<index_in_heap_type, boost::property_map<undirected_graph, boost::vertex_index_t>::const_type> indicesInHeap_type;
+ indicesInHeap_type indicesInHeap = boost::make_shared_array_property_map(num_vertices(g), index_in_heap_type(-1), get(boost::vertex_index, g));
+ boost::d_ary_heap_indirect<vertex_descriptor, 22, indicesInHeap_type, distances_type, std::greater<weight_type> > pq(distances, indicesInHeap);
int w = boost::stoer_wagner_min_cut(g, get(boost::edge_weight, g), boost::max_priority_queue(pq));
BOOST_CHECK_EQUAL(w, 3407);
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