|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r76535 - in branches/release: . boost boost/algorithm/string boost/algorithm/string/detail boost/archive boost/bimap boost/config boost/date_time boost/date_time/posix_time boost/detail boost/dynamic_bitset boost/function boost/functional boost/fusion boost/geometry boost/geometry/domains boost/geometry/io boost/geometry/io/dsv boost/gil boost/graph boost/graph/detail boost/graph/distributed boost/heap boost/icl boost/integer boost/interprocess boost/intrusive boost/io boost/iostreams boost/iterator boost/locale boost/msm boost/msm/back boost/msm/front boost/msm/front/detail boost/msm/front/euml boost/msm/mpl_graph boost/numeric/ublas boost/pool boost/preprocessor boost/program_options boost/program_options/detail boost/property_tree boost/python boost/range 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/minmax libs/algorithm/string libs/algorithm/string/doc libs/array libs/array/test libs/bimap libs/concept_check libs/config 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/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/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/iterator libs/locale libs/locale/src 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/program_options/test libs/property_tree libs/python libs/range libs/regex 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/system libs/thread libs/thread/test libs/timer libs/tr1 libs/type_traits 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/build/v2/tools tools/inspect tools/quickbook tools/regression tools/regression/src tools/release tools/wave
From: jewillco_at_[hidden]
Date: 2012-01-15 18:32:16
Author: jewillco
Date: 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
New Revision: 76535
URL: http://svn.boost.org/trac/boost/changeset/76535
Log:
Merged r76050, r75547, r75891, r76049, r76083, and r76439 from trunk (reverse_graph bug fixes and fix for #6293); refs #6293
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/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/bimap/ (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/cregex.hpp (props changed)
branches/release/boost/cstdint.hpp (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/domains/ (props changed)
branches/release/boost/geometry/io/ (props changed)
branches/release/boost/geometry/io/dsv/ (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/locale/ (props changed)
branches/release/boost/locale.hpp (props changed)
branches/release/boost/math_fwd.hpp (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/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/pool/ (props changed)
branches/release/boost/preprocessor/ (props changed)
branches/release/boost/program_options/ (props changed)
branches/release/boost/program_options/detail/parsers.hpp (props changed)
branches/release/boost/program_options/parsers.hpp (props changed)
branches/release/boost/property_tree/ (props changed)
branches/release/boost/python/ (props changed)
branches/release/boost/range/ (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/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/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/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/array/ (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/bimap/ (props changed)
branches/release/libs/config/ (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/release_notes.qbk (props changed)
branches/release/libs/geometry/index.html (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/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/iterator/ (props changed)
branches/release/libs/libraries.htm (props changed)
branches/release/libs/locale/ (props changed)
branches/release/libs/locale/src/ (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/program_options/test/parsers_test.cpp (props changed)
branches/release/libs/property_tree/ (props changed)
branches/release/libs/python/ (props changed)
branches/release/libs/range/ (props changed)
branches/release/libs/regex/ (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/system/ (props changed)
branches/release/libs/thread/ (props changed)
branches/release/libs/thread/test/ (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/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/build/v2/tools/mpi.jam (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 | 6
branches/release/boost/graph/bellman_ford_shortest_paths.hpp | 11
branches/release/boost/graph/biconnected_components.hpp | 17 +-
branches/release/boost/graph/boykov_kolmogorov_max_flow.hpp | 21 +-
branches/release/boost/graph/breadth_first_search.hpp | 9
branches/release/boost/graph/bron_kerbosch_all_cliques.hpp | 18 +-
branches/release/boost/graph/closeness_centrality.hpp | 33 ++--
branches/release/boost/graph/clustering_coefficient.hpp | 21 +-
branches/release/boost/graph/connected_components.hpp | 5
branches/release/boost/graph/copy.hpp | 25 ++
branches/release/boost/graph/core_numbers.hpp | 3
branches/release/boost/graph/degree_centrality.hpp | 11
branches/release/boost/graph/depth_first_search.hpp | 21 +-
branches/release/boost/graph/detail/geodesic.hpp | 9
branches/release/boost/graph/dijkstra_shortest_paths.hpp | 3
branches/release/boost/graph/distributed/concepts.hpp | 23 +-
branches/release/boost/graph/distributed/hohberg_biconnected_components.hpp | 3
branches/release/boost/graph/dominator_tree.hpp | 7
branches/release/boost/graph/eccentricity.hpp | 19 +-
branches/release/boost/graph/floyd_warshall_shortest.hpp | 9
branches/release/boost/graph/geodesic_distance.hpp | 35 ++--
branches/release/boost/graph/graph_concepts.hpp | 5
branches/release/boost/graph/howard_cycle_ratio.hpp | 11
branches/release/boost/graph/isomorphism.hpp | 23 +-
branches/release/boost/graph/johnson_all_pairs_shortest.hpp | 5
branches/release/boost/graph/kruskal_min_spanning_tree.hpp | 19 +-
branches/release/boost/graph/neighbor_bfs.hpp | 11
branches/release/boost/graph/properties.hpp | 2
branches/release/boost/graph/reverse_graph.hpp | 130 ++++++++++++++--
branches/release/boost/graph/strong_components.hpp | 11
branches/release/boost/graph/tiernan_all_cycles.hpp | 17 +-
branches/release/boost/graph/transitive_closure.hpp | 21 +-
branches/release/boost/graph/undirected_dfs.hpp | 29 ++-
branches/release/libs/concept_check/reference.htm | 6
branches/release/libs/graph/doc/AStarHeuristic.html | 2
branches/release/libs/graph/doc/AdjacencyGraph.html | 4
branches/release/libs/graph/doc/BidirectionalGraph.html | 4
branches/release/libs/graph/doc/EdgeListGraph.html | 4
branches/release/libs/graph/doc/Graph.html | 12
branches/release/libs/graph/doc/IncidenceGraph.html | 4
branches/release/libs/graph/doc/KeyedUpdatableQueue.html | 4
branches/release/libs/graph/doc/MutableGraph.html | 6
branches/release/libs/graph/doc/MutablePropertyGraph.html | 2
branches/release/libs/graph/doc/PropertyGraph.html | 6
branches/release/libs/graph/doc/UpdatableQueue.html | 2
branches/release/libs/graph/doc/VertexAndEdgeListGraph.html | 4
branches/release/libs/graph/doc/VertexListGraph.html | 6
branches/release/libs/graph/doc/biconnected_components.w | 11
branches/release/libs/graph/doc/constructing_algorithms.html | 10
branches/release/libs/graph/doc/isomorphism-impl-v2.w | 22 +-
branches/release/libs/graph/doc/isomorphism-impl-v3.w | 22 +-
branches/release/libs/graph/doc/isomorphism-impl.w | 14
branches/release/libs/graph/doc/leda_conversion.html | 6
branches/release/libs/graph/doc/reverse_graph.html | 29 +++
branches/release/libs/graph/doc/transitive_closure.w | 19 +-
branches/release/libs/graph/example/implicit_graph.cpp | 20 +-
branches/release/libs/graph/example/leda-concept-check.cpp | 11
branches/release/libs/graph/example/loops_dfs.cpp | 5
branches/release/libs/graph/example/put-get-helper-eg.cpp | 3
branches/release/libs/graph/test/adj_list_cc.cpp | 297 ++++++++++++++++++++-------------------
branches/release/libs/graph/test/adj_matrix_cc.cpp | 69 ++++----
branches/release/libs/graph/test/edge_list_cc.cpp | 7
branches/release/libs/graph/test/filtered_graph_cc.cpp | 15 +
branches/release/libs/graph/test/graph_concepts.cpp | 11
branches/release/libs/graph/test/grid_graph_cc.cpp | 17 +-
branches/release/libs/graph/test/leda_graph_cc.cpp | 32 ++--
branches/release/libs/graph/test/read_propmap.cpp | 5
branches/release/libs/graph/test/reverse_graph_cc.cpp | 17 +
branches/release/libs/graph/test/stanford_graph_cc.cpp | 35 ++--
branches/release/libs/graph/test/test_construction.hpp | 1
branches/release/libs/graph/test/test_destruction.hpp | 3
branches/release/libs/graph/test/test_direction.hpp | 1
branches/release/libs/graph/test/test_graph.hpp | 1
branches/release/libs/graph/test/test_iteration.hpp | 1
branches/release/libs/graph/test/test_properties.hpp | 2
branches/release/libs/graph/test/vector_graph_cc.cpp | 7
76 files changed, 776 insertions(+), 576 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-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -25,7 +25,7 @@
#include <boost/graph/detail/d_ary_heap.hpp>
#include <boost/property_map/property_map.hpp>
#include <boost/property_map/vector_property_map.hpp>
-
+#include <boost/concept/assert.hpp>
namespace boost {
@@ -34,7 +34,7 @@
struct AStarHeuristicConcept {
void constraints()
{
- function_requires< CopyConstructibleConcept<Heuristic> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Heuristic> ));
h(u);
}
Heuristic h;
@@ -58,7 +58,7 @@
struct AStarVisitorConcept {
void constraints()
{
- function_requires< CopyConstructibleConcept<Visitor> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Visitor> ));
vis.initialize_vertex(u, g);
vis.discover_vertex(u, g);
vis.examine_vertex(u, g);
Modified: branches/release/boost/graph/bellman_ford_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/bellman_ford_shortest_paths.hpp (original)
+++ branches/release/boost/graph/bellman_ford_shortest_paths.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -29,13 +29,14 @@
#include <boost/graph/relax.hpp>
#include <boost/graph/visitors.hpp>
#include <boost/graph/named_function_params.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
template <class Visitor, class Graph>
struct BellmanFordVisitorConcept {
void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Visitor> ));
vis.examine_edge(e, g);
vis.edge_relaxed(e, g);
vis.edge_not_relaxed(e, g);
@@ -95,12 +96,12 @@
BinaryPredicate compare,
BellmanFordVisitor v)
{
- function_requires<EdgeListGraphConcept<EdgeListGraph> >();
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<EdgeListGraph> ));
typedef graph_traits<EdgeListGraph> GTraits;
typedef typename GTraits::edge_descriptor Edge;
typedef typename GTraits::vertex_descriptor Vertex;
- function_requires<ReadWritePropertyMapConcept<DistanceMap, Vertex> >();
- function_requires<ReadablePropertyMapConcept<WeightMap, Edge> >();
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<DistanceMap, Vertex> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<WeightMap, Edge> ));
typedef typename property_traits<DistanceMap>::value_type D_value;
typedef typename property_traits<WeightMap>::value_type W_value;
@@ -229,7 +230,7 @@
(VertexAndEdgeListGraph& g,
const bgl_named_params<P, T, R>& params)
{
- function_requires<VertexListGraphConcept<VertexAndEdgeListGraph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<VertexAndEdgeListGraph> ));
return detail::bellman_dispatch
(g, num_vertices(g),
choose_const_pmap(get_param(params, edge_weight), g, edge_weight),
Modified: branches/release/boost/graph/biconnected_components.hpp
==============================================================================
--- branches/release/boost/graph/biconnected_components.hpp (original)
+++ branches/release/boost/graph/biconnected_components.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -20,6 +20,7 @@
#include <boost/property_map/property_map.hpp>
#include <boost/graph/depth_first_search.hpp>
#include <boost/graph/graph_utility.hpp>
+#include <boost/concept/assert.hpp>
namespace boost
{
@@ -160,14 +161,14 @@
{
typedef typename graph_traits<Graph>::vertex_descriptor vertex_t;
typedef typename graph_traits<Graph>::edge_descriptor edge_t;
- function_requires<VertexListGraphConcept<Graph> >();
- function_requires<IncidenceGraphConcept<Graph> >();
- function_requires<WritablePropertyMapConcept<ComponentMap, edge_t> >();
- function_requires<ReadWritePropertyMapConcept<DiscoverTimeMap,
- vertex_t> >();
- function_requires<ReadWritePropertyMapConcept<LowPointMap, vertex_t > >();
- function_requires<ReadWritePropertyMapConcept<PredecessorMap,
- vertex_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<ComponentMap, edge_t> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<DiscoverTimeMap,
+ vertex_t> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<LowPointMap, vertex_t > ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<PredecessorMap,
+ vertex_t> ));
std::size_t num_components = 0;
std::size_t dfs_time = 0;
Modified: branches/release/boost/graph/boykov_kolmogorov_max_flow.hpp
==============================================================================
--- branches/release/boost/graph/boykov_kolmogorov_max_flow.hpp (original)
+++ branches/release/boost/graph/boykov_kolmogorov_max_flow.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -47,6 +47,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/named_function_params.hpp>
#include <boost/graph/lookup_edge.hpp>
+#include <boost/concept/assert.hpp>
// The algorithm impelemented here is described in:
//
@@ -743,16 +744,16 @@
typedef typename graph_traits<Graph>::edge_descriptor edge_descriptor;
//as this method is the last one before we instantiate the solver, we do the concept checks here
- function_requires<VertexListGraphConcept<Graph> >(); //to have vertices(), num_vertices(),
- function_requires<EdgeListGraphConcept<Graph> >(); //to have edges()
- function_requires<IncidenceGraphConcept<Graph> >(); //to have source(), target() and out_edges()
- function_requires<ReadablePropertyMapConcept<CapacityEdgeMap, edge_descriptor> >(); //read flow-values from edges
- function_requires<ReadWritePropertyMapConcept<ResidualCapacityEdgeMap, edge_descriptor> >(); //write flow-values to residuals
- function_requires<ReadablePropertyMapConcept<ReverseEdgeMap, edge_descriptor> >(); //read out reverse edges
- function_requires<ReadWritePropertyMapConcept<PredecessorMap, vertex_descriptor> >(); //store predecessor there
- function_requires<ReadWritePropertyMapConcept<ColorMap, vertex_descriptor> >(); //write corresponding tree
- function_requires<ReadWritePropertyMapConcept<DistanceMap, vertex_descriptor> >(); //write distance to source/sink
- function_requires<ReadablePropertyMapConcept<IndexMap, vertex_descriptor> >(); //get index 0...|V|-1
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> )); //to have vertices(), num_vertices(),
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> )); //to have edges()
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> )); //to have source(), target() and out_edges()
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<CapacityEdgeMap, edge_descriptor> )); //read flow-values from edges
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<ResidualCapacityEdgeMap, edge_descriptor> )); //write flow-values to residuals
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<ReverseEdgeMap, edge_descriptor> )); //read out reverse edges
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<PredecessorMap, vertex_descriptor> )); //store predecessor there
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<ColorMap, vertex_descriptor> )); //write corresponding tree
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<DistanceMap, vertex_descriptor> )); //write distance to source/sink
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap, vertex_descriptor> )); //get index 0...|V|-1
BOOST_ASSERT(num_vertices(g) >= 2 && src != sink);
detail::bk_max_flow<
Modified: branches/release/boost/graph/breadth_first_search.hpp
==============================================================================
--- branches/release/boost/graph/breadth_first_search.hpp (original)
+++ branches/release/boost/graph/breadth_first_search.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -24,6 +24,7 @@
#include <boost/graph/overloading.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/two_bit_color_map.hpp>
+#include <boost/concept/assert.hpp>
#ifdef BOOST_GRAPH_USE_MPI
#include <boost/graph/distributed/concepts.hpp>
@@ -34,7 +35,7 @@
template <class Visitor, class Graph>
struct BFSVisitorConcept {
void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Visitor> ));
vis.initialize_vertex(u, g);
vis.discover_vertex(u, g);
vis.examine_vertex(u, g);
@@ -59,12 +60,12 @@
typename graph_traits<IncidenceGraph>::vertex_descriptor s,
Buffer& Q, BFSVisitor vis, ColorMap color)
{
- function_requires< IncidenceGraphConcept<IncidenceGraph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<IncidenceGraph> ));
typedef graph_traits<IncidenceGraph> GTraits;
typedef typename GTraits::vertex_descriptor Vertex;
typedef typename GTraits::edge_descriptor Edge;
- function_requires< BFSVisitorConcept<BFSVisitor, IncidenceGraph> >();
- function_requires< ReadWritePropertyMapConcept<ColorMap, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( BFSVisitorConcept<BFSVisitor, IncidenceGraph> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<ColorMap, Vertex> ));
typedef typename property_traits<ColorMap>::value_type ColorValue;
typedef color_traits<ColorValue> Color;
typename GTraits::out_edge_iterator ei, ei_end;
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-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -11,6 +11,8 @@
#include <deque>
#include <boost/config.hpp>
+#include <boost/concept/assert.hpp>
+
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/lookup_edge.hpp>
@@ -151,7 +153,7 @@
const Container& in,
Container& out)
{
- function_requires< GraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
typename graph_traits<Graph>::directed_category cat;
typename Container::const_iterator i, end = in.end();
@@ -174,8 +176,8 @@
Visitor vis,
std::size_t min)
{
- function_requires< GraphConcept<Graph> >();
- function_requires< CliqueVisitorConcept<Visitor,Clique,Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( CliqueVisitorConcept<Visitor,Clique,Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
// Is there vertex in nots that is connected to all vertices
@@ -266,15 +268,15 @@
inline void
bron_kerbosch_all_cliques(const Graph& g, Visitor vis, std::size_t min)
{
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< VertexIndexGraphConcept<Graph> >();
- function_requires< AdjacencyMatrixConcept<Graph> >(); // Structural requirement only
+ 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;
typedef std::vector<Vertex> VertexSet;
typedef std::deque<Vertex> Clique;
- function_requires< CliqueVisitorConcept<Visitor,Clique,Graph> >();
+ BOOST_CONCEPT_ASSERT(( CliqueVisitorConcept<Visitor,Clique,Graph> ));
// NOTE: We're using a deque to implement the clique, because it provides
// constant inserts and removals at the end and also a constant size.
Modified: branches/release/boost/graph/closeness_centrality.hpp
==============================================================================
--- branches/release/boost/graph/closeness_centrality.hpp (original)
+++ branches/release/boost/graph/closeness_centrality.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -9,6 +9,7 @@
#include <boost/graph/detail/geodesic.hpp>
#include <boost/graph/exterior_property.hpp>
+#include <boost/concept/assert.hpp>
namespace boost
{
@@ -25,9 +26,9 @@
result_type operator ()(distance_type d, const Graph&)
{
- function_requires< NumericValueConcept<DistanceType> >();
- function_requires< NumericValueConcept<ResultType> >();
- function_requires< AdaptableUnaryFunctionConcept<Reciprocal,ResultType,ResultType> >();
+ BOOST_CONCEPT_ASSERT(( NumericValueConcept<DistanceType> ));
+ BOOST_CONCEPT_ASSERT(( NumericValueConcept<ResultType> ));
+ BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept<Reciprocal,ResultType,ResultType> ));
return (d == base_type::infinite_distance())
? base_type::zero_result()
: rec(result_type(d));
@@ -75,12 +76,12 @@
Measure measure,
Combinator combine)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadablePropertyMapConcept<DistanceMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMap,Vertex> ));
typedef typename property_traits<DistanceMap>::value_type Distance;
- function_requires< NumericValueConcept<Distance> >();
- function_requires< DistanceMeasureConcept<Measure,Graph> >();
+ BOOST_CONCEPT_ASSERT(( NumericValueConcept<Distance> ));
+ BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept<Measure,Graph> ));
Distance n = detail::combine_distances(g, dist, combine, Distance(0));
return measure(n, g);
@@ -90,9 +91,9 @@
inline typename Measure::result_type
closeness_centrality(const Graph& g, DistanceMap dist, Measure measure)
{
- function_requires< GraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadablePropertyMapConcept<DistanceMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMap,Vertex> ));
typedef typename property_traits<DistanceMap>::value_type Distance;
return closeness_centrality(g, dist, measure, std::plus<Distance>());
@@ -116,12 +117,12 @@
CentralityMap cent,
Measure measure)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadablePropertyMapConcept<DistanceMatrixMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMatrixMap,Vertex> ));
typedef typename property_traits<DistanceMatrixMap>::value_type DistanceMap;
- function_requires< ReadablePropertyMapConcept<DistanceMap,Vertex> >();
- function_requires< WritablePropertyMapConcept<CentralityMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMap,Vertex> ));
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<CentralityMap,Vertex> ));
typedef typename property_traits<DistanceMap>::value_type Distance;
typedef typename property_traits<CentralityMap>::value_type Centrality;
@@ -141,11 +142,11 @@
DistanceMatrixMap dist,
CentralityMap cent)
{
- function_requires< GraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadablePropertyMapConcept<DistanceMatrixMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMatrixMap,Vertex> ));
typedef typename property_traits<DistanceMatrixMap>::value_type DistanceMap;
- function_requires< ReadablePropertyMapConcept<DistanceMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMap,Vertex> ));
typedef typename property_traits<DistanceMap>::value_type Distance;
typedef typename property_traits<CentralityMap>::value_type Result;
Modified: branches/release/boost/graph/clustering_coefficient.hpp
==============================================================================
--- branches/release/boost/graph/clustering_coefficient.hpp (original)
+++ branches/release/boost/graph/clustering_coefficient.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -11,6 +11,7 @@
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/lookup_edge.hpp>
+#include <boost/concept/assert.hpp>
namespace boost
{
@@ -20,7 +21,7 @@
inline typename graph_traits<Graph>::degree_size_type
possible_edges(const Graph& g, std::size_t k, directed_tag)
{
- function_requires< GraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
typedef typename graph_traits<Graph>::degree_size_type T;
return T(k) * (T(k) - 1);
}
@@ -42,7 +43,7 @@
directed_tag)
{
- function_requires< AdjacencyMatrixConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
return (lookup_edge(u, v, g).second ? 1 : 0) +
(lookup_edge(v, u, g).second ? 1 : 0);
}
@@ -55,7 +56,7 @@
typename graph_traits<Graph>::vertex_descriptor v,
undirected_tag)
{
- function_requires< AdjacencyMatrixConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
return lookup_edge(u, v, g).second ? 1 : 0;
}
}
@@ -64,7 +65,7 @@
inline typename graph_traits<Graph>::degree_size_type
num_paths_through_vertex(const Graph& g, Vertex v)
{
- function_requires< AdjacencyGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::directed_category Directed;
typedef typename graph_traits<Graph>::adjacency_iterator AdjacencyIterator;
@@ -81,8 +82,8 @@
inline typename graph_traits<Graph>::degree_size_type
num_triangles_on_vertex(const Graph& g, Vertex v)
{
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::degree_size_type Degree;
typedef typename graph_traits<Graph>::directed_category Directed;
typedef typename graph_traits<Graph>::adjacency_iterator AdjacencyIterator;
@@ -119,10 +120,10 @@
inline typename property_traits<ClusteringMap>::value_type
all_clustering_coefficients(const Graph& g, ClusteringMap cm)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
- function_requires< WritablePropertyMapConcept<ClusteringMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<ClusteringMap,Vertex> ));
typedef typename property_traits<ClusteringMap>::value_type Coefficient;
Coefficient sum(0);
@@ -139,10 +140,10 @@
inline typename property_traits<ClusteringMap>::value_type
mean_clustering_coefficient(const Graph& g, ClusteringMap cm)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
- function_requires< ReadablePropertyMapConcept<ClusteringMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<ClusteringMap,Vertex> ));
typedef typename property_traits<ClusteringMap>::value_type Coefficient;
Coefficient cc(0);
Modified: branches/release/boost/graph/connected_components.hpp
==============================================================================
--- branches/release/boost/graph/connected_components.hpp (original)
+++ branches/release/boost/graph/connected_components.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -17,6 +17,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/overloading.hpp>
#include <boost/static_assert.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
@@ -64,7 +65,7 @@
if (num_vertices(g) == 0) return 0;
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< WritablePropertyMapConcept<ComponentMap, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<ComponentMap, Vertex> ));
typedef typename boost::graph_traits<Graph>::directed_category directed;
BOOST_STATIC_ASSERT((boost::is_same<directed, undirected_tag>::value));
@@ -84,7 +85,7 @@
if (num_vertices(g) == 0) return 0;
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< WritablePropertyMapConcept<ComponentMap, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<ComponentMap, Vertex> ));
typedef typename boost::graph_traits<Graph>::directed_category directed;
// BOOST_STATIC_ASSERT((boost::is_same<directed, undirected_tag>::value));
Modified: branches/release/boost/graph/copy.hpp
==============================================================================
--- branches/release/boost/graph/copy.hpp (original)
+++ branches/release/boost/graph/copy.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -44,6 +44,7 @@
#include <boost/config.hpp>
#include <vector>
#include <boost/graph/graph_traits.hpp>
+#include <boost/graph/reverse_graph.hpp>
#include <boost/property_map/property_map.hpp>
#include <boost/graph/named_function_params.hpp>
#include <boost/graph/breadth_first_search.hpp>
@@ -53,6 +54,21 @@
namespace detail {
+ // Hack to make transpose_graph work with the same interface as before
+ template <typename Graph, typename Desc>
+ struct remove_reverse_edge_descriptor {
+ typedef Desc type;
+ static Desc convert(const Desc& d, const Graph&) {return d;}
+ };
+
+ template <typename Graph, typename Desc>
+ struct remove_reverse_edge_descriptor<Graph, reverse_graph_edge_descriptor<Desc> > {
+ typedef Desc type;
+ static Desc convert(const reverse_graph_edge_descriptor<Desc>& d, const Graph& g) {
+ return get(edge_underlying, g, d);
+ }
+ };
+
// Default edge and vertex property copiers
template <typename Graph1, typename Graph2>
@@ -112,6 +128,7 @@
CopyVertex copy_vertex, CopyEdge copy_edge,
Orig2CopyVertexIndexMap orig2copy, IndexMap)
{
+ typedef remove_reverse_edge_descriptor<Graph, typename graph_traits<Graph>::edge_descriptor> cvt;
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
for (boost::tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
typename graph_traits<MutableGraph>::vertex_descriptor
@@ -126,7 +143,7 @@
boost::tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei, g_in)),
get(orig2copy, target(*ei, g_in)),
g_out);
- copy_edge(*ei, new_e);
+ copy_edge(cvt::convert(*ei, g_in), new_e);
}
}
};
@@ -141,6 +158,7 @@
CopyVertex copy_vertex, CopyEdge copy_edge,
Orig2CopyVertexIndexMap orig2copy, IndexMap)
{
+ typedef remove_reverse_edge_descriptor<Graph, typename graph_traits<Graph>::edge_descriptor> cvt;
typename graph_traits<Graph>::vertex_iterator vi, vi_end;
for (boost::tie(vi, vi_end) = vertices(g_in); vi != vi_end; ++vi) {
typename graph_traits<MutableGraph>::vertex_descriptor
@@ -156,7 +174,7 @@
boost::tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei, g_in)),
get(orig2copy, target(*ei, g_in)),
g_out);
- copy_edge(*ei, new_e);
+ copy_edge(cvt::convert(*ei, g_in), new_e);
}
}
}
@@ -173,6 +191,7 @@
Orig2CopyVertexIndexMap orig2copy,
IndexMap index_map)
{
+ typedef remove_reverse_edge_descriptor<Graph, typename graph_traits<Graph>::edge_descriptor> cvt;
typedef color_traits<default_color_type> Color;
std::vector<default_color_type>
color(num_vertices(g_in), Color::white());
@@ -192,7 +211,7 @@
boost::tie(new_e, inserted) = add_edge(get(orig2copy, source(*ei,g_in)),
get(orig2copy, target(*ei,g_in)),
g_out);
- copy_edge(*ei, new_e);
+ copy_edge(cvt::convert(*ei, g_in), new_e);
}
}
color[get(index_map, *vi)] = Color::black();
Modified: branches/release/boost/graph/core_numbers.hpp
==============================================================================
--- branches/release/boost/graph/core_numbers.hpp (original)
+++ branches/release/boost/graph/core_numbers.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -15,6 +15,7 @@
#include <boost/pending/indirect_cmp.hpp>
#include <boost/graph/breadth_first_search.hpp>
#include <boost/iterator/reverse_iterator.hpp>
+#include <boost/concept/assert.hpp>
/*
* core_numbers
@@ -46,7 +47,7 @@
struct CoreNumbersVisitorConcept {
void constraints()
{
- function_requires< CopyConstructibleConcept<Visitor> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Visitor> ));
vis.examine_vertex(u,g);
vis.finish_vertex(u,g);
vis.examine_edge(e,g);
Modified: branches/release/boost/graph/degree_centrality.hpp
==============================================================================
--- branches/release/boost/graph/degree_centrality.hpp (original)
+++ branches/release/boost/graph/degree_centrality.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -8,6 +8,7 @@
#define BOOST_GRAPH_DEGREE_CENTRALITY_HPP
#include <boost/graph/graph_concepts.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
@@ -28,7 +29,7 @@
inline degree_type operator ()(vertex_type v, const Graph& g)
{
- function_requires< IncidenceGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
return out_degree(v, g);
}
};
@@ -49,7 +50,7 @@
inline degree_type operator ()(vertex_type v, const Graph& g)
{
- function_requires< BidirectionalGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
return in_degree(v, g);
}
};
@@ -64,7 +65,7 @@
inline typename Measure::degree_type
degree_centrality(const Graph& g, Vertex v, Measure measure)
{
- function_requires< DegreeMeasureConcept<Measure, Graph> >();
+ BOOST_CONCEPT_ASSERT(( DegreeMeasureConcept<Measure, Graph> ));
return measure(v, g);
}
@@ -94,10 +95,10 @@
inline void
all_degree_centralities(const Graph& g, CentralityMap cent, Measure measure)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
- function_requires< WritablePropertyMapConcept<CentralityMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<CentralityMap,Vertex> ));
typedef typename property_traits<CentralityMap>::value_type Centrality;
VertexIterator i, end;
Modified: branches/release/boost/graph/depth_first_search.hpp
==============================================================================
--- branches/release/boost/graph/depth_first_search.hpp (original)
+++ branches/release/boost/graph/depth_first_search.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -21,6 +21,7 @@
#include <boost/graph/named_function_params.hpp>
#include <boost/ref.hpp>
#include <boost/implicit_cast.hpp>
+#include <boost/concept/assert.hpp>
#include <vector>
#include <utility>
@@ -31,7 +32,7 @@
class DFSVisitorConcept {
public:
void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Visitor> ));
vis.initialize_vertex(u, g);
vis.start_vertex(u, g);
vis.discover_vertex(u, g);
@@ -80,12 +81,12 @@
DFSVisitor& vis,
ColorMap color, TerminatorFunc func = TerminatorFunc())
{
- function_requires<IncidenceGraphConcept<IncidenceGraph> >();
- function_requires<DFSVisitorConcept<DFSVisitor, IncidenceGraph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<IncidenceGraph> ));
+ BOOST_CONCEPT_ASSERT(( DFSVisitorConcept<DFSVisitor, IncidenceGraph> ));
typedef typename graph_traits<IncidenceGraph>::vertex_descriptor Vertex;
- function_requires< ReadWritePropertyMapConcept<ColorMap, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<ColorMap, Vertex> ));
typedef typename property_traits<ColorMap>::value_type ColorValue;
- function_requires< ColorValueConcept<ColorValue> >();
+ BOOST_CONCEPT_ASSERT(( ColorValueConcept<ColorValue> ));
typedef color_traits<ColorValue> Color;
typedef typename graph_traits<IncidenceGraph>::out_edge_iterator Iter;
typedef std::pair<Vertex, std::pair<Iter, Iter> > VertexInfo;
@@ -151,12 +152,12 @@
DFSVisitor& vis, // pass-by-reference here, important!
ColorMap color, TerminatorFunc func)
{
- function_requires<IncidenceGraphConcept<IncidenceGraph> >();
- function_requires<DFSVisitorConcept<DFSVisitor, IncidenceGraph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<IncidenceGraph> ));
+ BOOST_CONCEPT_ASSERT(( DFSVisitorConcept<DFSVisitor, IncidenceGraph> ));
typedef typename graph_traits<IncidenceGraph>::vertex_descriptor Vertex;
- function_requires< ReadWritePropertyMapConcept<ColorMap, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<ColorMap, Vertex> ));
typedef typename property_traits<ColorMap>::value_type ColorValue;
- function_requires< ColorValueConcept<ColorValue> >();
+ BOOST_CONCEPT_ASSERT(( ColorValueConcept<ColorValue> ));
typedef color_traits<ColorValue> Color;
typename graph_traits<IncidenceGraph>::out_edge_iterator ei, ei_end;
@@ -187,7 +188,7 @@
typename graph_traits<VertexListGraph>::vertex_descriptor start_vertex)
{
typedef typename graph_traits<VertexListGraph>::vertex_descriptor Vertex;
- function_requires<DFSVisitorConcept<DFSVisitor, VertexListGraph> >();
+ BOOST_CONCEPT_ASSERT(( DFSVisitorConcept<DFSVisitor, VertexListGraph> ));
typedef typename property_traits<ColorMap>::value_type ColorValue;
typedef color_traits<ColorValue> Color;
Modified: branches/release/boost/graph/detail/geodesic.hpp
==============================================================================
--- branches/release/boost/graph/detail/geodesic.hpp (original)
+++ branches/release/boost/graph/detail/geodesic.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -11,6 +11,7 @@
#include <boost/config.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/numeric_values.hpp>
+#include <boost/concept/assert.hpp>
// TODO: Should this really be in detail?
@@ -51,13 +52,13 @@
Combinator combine,
Distance init)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
- function_requires< ReadablePropertyMapConcept<DistanceMap,Vertex> >();
- function_requires< NumericValueConcept<Distance> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMap,Vertex> ));
+ BOOST_CONCEPT_ASSERT(( NumericValueConcept<Distance> ));
typedef numeric_values<Distance> DistanceNumbers;
- function_requires< AdaptableBinaryFunction<Combinator,Distance,Distance,Distance> >();
+ BOOST_CONCEPT_ASSERT(( AdaptableBinaryFunction<Combinator,Distance,Distance,Distance> ));
// If there's ever an infinite distance, then we simply return
// infinity. Note that this /will/ include the a non-zero
Modified: branches/release/boost/graph/dijkstra_shortest_paths.hpp
==============================================================================
--- branches/release/boost/graph/dijkstra_shortest_paths.hpp (original)
+++ branches/release/boost/graph/dijkstra_shortest_paths.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -30,6 +30,7 @@
#include <boost/property_map/property_map.hpp>
#include <boost/property_map/vector_property_map.hpp>
#include <boost/type_traits.hpp>
+#include <boost/concept/assert.hpp>
#ifdef BOOST_GRAPH_DIJKSTRA_TESTING
# include <boost/pending/mutable_queue.hpp>
@@ -68,7 +69,7 @@
template <class Visitor, class Graph>
struct DijkstraVisitorConcept {
void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Visitor> ));
vis.initialize_vertex(u, g);
vis.discover_vertex(u, g);
vis.examine_vertex(u, g);
Modified: branches/release/boost/graph/distributed/concepts.hpp
==============================================================================
--- branches/release/boost/graph/distributed/concepts.hpp (original)
+++ branches/release/boost/graph/distributed/concepts.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -21,6 +21,7 @@
#include <boost/version.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graph_concepts.hpp>
+#include <boost/concept/assert.hpp>
#if BOOST_VERSION >= 103500
# include <boost/concept/detail/concept_def.hpp>
@@ -46,10 +47,10 @@
typedef typename graph_traits<G>::traversal_category
traversal_category;
void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<vertex_iterator> >();
- function_requires< ConvertibleConcept<traversal_category,
- distributed_vertex_list_graph_tag> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept<vertex_iterator> ));
+ BOOST_CONCEPT_ASSERT(( ConvertibleConcept<traversal_category,
+ distributed_vertex_list_graph_tag> ));
#ifdef BOOST_VECTOR_AS_GRAPH_GRAPH_ADL_HACK
// dwa 2003/7/11 -- This clearly shouldn't be necessary, but if
@@ -92,13 +93,13 @@
typedef typename graph_traits<G>::traversal_category
traversal_category;
void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<edge_iterator> >();
- function_requires< DefaultConstructibleConcept<edge_descriptor> >();
- function_requires< EqualityComparableConcept<edge_descriptor> >();
- function_requires< AssignableConcept<edge_descriptor> >();
- function_requires< ConvertibleConcept<traversal_category,
- distributed_edge_list_graph_tag> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept<edge_iterator> ));
+ BOOST_CONCEPT_ASSERT(( DefaultConstructibleConcept<edge_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( EqualityComparableConcept<edge_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( AssignableConcept<edge_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( ConvertibleConcept<traversal_category,
+ distributed_edge_list_graph_tag> ));
p = edges(g);
e = *p.first;
Modified: branches/release/boost/graph/distributed/hohberg_biconnected_components.hpp
==============================================================================
--- branches/release/boost/graph/distributed/hohberg_biconnected_components.hpp (original)
+++ branches/release/boost/graph/distributed/hohberg_biconnected_components.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -44,6 +44,7 @@
#include <vector>
#include <boost/graph/parallel/algorithm.hpp>
#include <boost/graph/distributed/connected_components.hpp>
+#include <boost/concept/assert.hpp>
namespace boost { namespace graph { namespace distributed {
@@ -908,7 +909,7 @@
undirected_tag>::value));
// The graph must model Incidence Graph
- function_requires< IncidenceGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::edges_size_type edges_size_type;
typedef typename graph_traits<Graph>::degree_size_type degree_size_type;
Modified: branches/release/boost/graph/dominator_tree.hpp
==============================================================================
--- branches/release/boost/graph/dominator_tree.hpp (original)
+++ branches/release/boost/graph/dominator_tree.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -13,6 +13,7 @@
#include <deque>
#include <set>
#include <boost/graph/depth_first_search.hpp>
+#include <boost/concept/assert.hpp>
// Dominator tree computation
@@ -244,7 +245,7 @@
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertices_size_type VerticesSizeType;
- function_requires< BidirectionalGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
const VerticesSizeType numOfVertices = num_vertices(g);
if (numOfVertices == 0) return;
@@ -299,7 +300,7 @@
// Typedefs and concept check
typedef typename graph_traits<Graph>::vertices_size_type VerticesSizeType;
- function_requires< BidirectionalGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
// 1. Depth first visit
const VerticesSizeType numOfVertices = num_vertices(g);
@@ -388,7 +389,7 @@
iterator_property_map<typename std::vector< std::set<Vertex> >::iterator,
IndexMap> vertexSetMap;
- function_requires<BidirectionalGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
// 1. Finding dominator
// 1.1. Initialize
Modified: branches/release/boost/graph/eccentricity.hpp
==============================================================================
--- branches/release/boost/graph/eccentricity.hpp (original)
+++ branches/release/boost/graph/eccentricity.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -10,6 +10,7 @@
#include <boost/utility.hpp>
#include <boost/config.hpp>
#include <boost/graph/detail/geodesic.hpp>
+#include <boost/concept/assert.hpp>
namespace boost
{
@@ -19,9 +20,9 @@
inline typename property_traits<DistanceMap>::value_type
eccentricity(const Graph& g, DistanceMap dist, Combinator combine)
{
- function_requires< GraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadablePropertyMapConcept<DistanceMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMap,Vertex> ));
typedef typename property_traits<DistanceMap>::value_type Distance;
return detail::combine_distances(g, dist, combine, Distance(0));
@@ -31,9 +32,9 @@
inline typename property_traits<DistanceMap>::value_type
eccentricity(const Graph& g, DistanceMap dist)
{
- function_requires< GraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadablePropertyMapConcept<DistanceMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMap,Vertex> ));
typedef typename property_traits<DistanceMap>::value_type Distance;
return eccentricity(g, dist, detail::maximize<Distance>());
@@ -44,12 +45,12 @@
typename property_traits<EccentricityMap>::value_type>
all_eccentricities(const Graph& g, const DistanceMatrix& dist, EccentricityMap ecc)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
- function_requires< ReadablePropertyMapConcept<DistanceMatrix,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMatrix,Vertex> ));
typedef typename property_traits<DistanceMatrix>::value_type DistanceMap;
- function_requires< WritablePropertyMapConcept<EccentricityMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<EccentricityMap,Vertex> ));
typedef typename property_traits<EccentricityMap>::value_type Eccentricity;
BOOST_USING_STD_MIN();
BOOST_USING_STD_MAX();
@@ -76,10 +77,10 @@
typename property_traits<EccentricityMap>::value_type>
radius_and_diameter(const Graph& g, EccentricityMap ecc)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
- function_requires< ReadablePropertyMapConcept<EccentricityMap, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<EccentricityMap, Vertex> ));
typedef typename property_traits<EccentricityMap>::value_type Eccentricity;
BOOST_USING_STD_MIN();
BOOST_USING_STD_MAX();
Modified: branches/release/boost/graph/floyd_warshall_shortest.hpp
==============================================================================
--- branches/release/boost/graph/floyd_warshall_shortest.hpp (original)
+++ branches/release/boost/graph/floyd_warshall_shortest.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -34,6 +34,7 @@
#include <boost/graph/named_function_params.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/relax.hpp>
+#include <boost/concept/assert.hpp>
namespace boost
{
@@ -84,7 +85,7 @@
const BinaryFunction& combine, const Infinity& inf,
const Zero& zero)
{
- function_requires<VertexListGraphConcept<VertexListGraph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<VertexListGraph> ));
return detail::floyd_warshall_dispatch(g, d, compare, combine,
inf, zero);
@@ -101,9 +102,9 @@
const BinaryPredicate& compare, const BinaryFunction& combine,
const Infinity& inf, const Zero& zero)
{
- function_requires<VertexListGraphConcept<VertexAndEdgeListGraph> >();
- function_requires<EdgeListGraphConcept<VertexAndEdgeListGraph> >();
- function_requires<IncidenceGraphConcept<VertexAndEdgeListGraph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<VertexAndEdgeListGraph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<VertexAndEdgeListGraph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<VertexAndEdgeListGraph> ));
typename graph_traits<VertexAndEdgeListGraph>::vertex_iterator
firstv, lastv, firstv2, lastv2;
Modified: branches/release/boost/graph/geodesic_distance.hpp
==============================================================================
--- branches/release/boost/graph/geodesic_distance.hpp (original)
+++ branches/release/boost/graph/geodesic_distance.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -9,6 +9,7 @@
#include <boost/graph/detail/geodesic.hpp>
#include <boost/graph/exterior_property.hpp>
+#include <boost/concept/assert.hpp>
namespace boost
{
@@ -25,10 +26,10 @@
result_type operator ()(distance_type d, const Graph& g)
{
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< NumericValueConcept<DistanceType> >();
- function_requires< NumericValueConcept<ResultType> >();
- function_requires< AdaptableBinaryFunctionConcept<Divides,ResultType,ResultType,ResultType> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( NumericValueConcept<DistanceType> ));
+ BOOST_CONCEPT_ASSERT(( NumericValueConcept<ResultType> ));
+ BOOST_CONCEPT_ASSERT(( AdaptableBinaryFunctionConcept<Divides,ResultType,ResultType,ResultType> ));
return (d == base_type::infinite_distance())
? base_type::infinite_result()
@@ -69,8 +70,8 @@
inline result_type operator ()(distance_type d, const Graph& g)
{
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< NumericValueConcept<DistanceType> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( NumericValueConcept<DistanceType> ));
if(d == base_type::infinite_distance()) {
return base_type::infinite_result();
@@ -99,7 +100,7 @@
Measure measure,
Combinator combine)
{
- function_requires< DistanceMeasureConcept<Measure,Graph> >();
+ BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept<Measure,Graph> ));
typedef typename Measure::distance_type Distance;
Distance n = detail::combine_distances(g, dist, combine, Distance(0));
@@ -112,7 +113,7 @@
inline typename Measure::result_type
mean_geodesic(const Graph& g, DistanceMap dist, Measure measure)
{
- function_requires< DistanceMeasureConcept<Measure,Graph> >();
+ BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept<Measure,Graph> ));
typedef typename Measure::distance_type Distance;
return mean_geodesic(g, dist, measure, std::plus<Distance>());
@@ -139,15 +140,15 @@
GeodesicMap geo,
Measure measure)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
- function_requires< ReadablePropertyMapConcept<DistanceMatrixMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMatrixMap,Vertex> ));
typedef typename property_traits<DistanceMatrixMap>::value_type DistanceMap;
- function_requires< DistanceMeasureConcept<Measure,Graph> >();
+ BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept<Measure,Graph> ));
typedef typename Measure::result_type Result;
- function_requires< WritablePropertyMapConcept<GeodesicMap,Vertex> >();
- function_requires< NumericValueConcept<Result> >();
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<GeodesicMap,Vertex> ));
+ BOOST_CONCEPT_ASSERT(( NumericValueConcept<Result> ));
// NOTE: We could compute the mean geodesic here by performing additional
// computations (i.e., adding and dividing). However, I don't really feel
@@ -178,11 +179,11 @@
inline typename property_traits<GeodesicMap>::value_type
all_mean_geodesics(const Graph& g, DistanceMatrixMap dist, GeodesicMap geo)
{
- function_requires< GraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadablePropertyMapConcept<DistanceMatrixMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<DistanceMatrixMap,Vertex> ));
typedef typename property_traits<DistanceMatrixMap>::value_type DistanceMap;
- function_requires< WritablePropertyMapConcept<GeodesicMap,Vertex> >();
+ BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<GeodesicMap,Vertex> ));
typedef typename property_traits<GeodesicMap>::value_type Result;
return all_mean_geodesics(g, dist, geo, measure_mean_geodesic<Result>(g, DistanceMap()));
@@ -193,7 +194,7 @@
inline typename Measure::result_type
small_world_distance(const Graph& g, GeodesicMap geo, Measure measure)
{
- function_requires< DistanceMeasureConcept<Measure,Graph> >();
+ BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept<Measure,Graph> ));
typedef typename Measure::result_type Result;
Result sum = detail::combine_distances(g, geo, std::plus<Result>(), Result(0));
Modified: branches/release/boost/graph/graph_concepts.hpp
==============================================================================
--- branches/release/boost/graph/graph_concepts.hpp (original)
+++ branches/release/boost/graph/graph_concepts.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -21,6 +21,7 @@
#include <boost/graph/buffer_concepts.hpp>
#include <boost/concept_check.hpp>
#include <boost/detail/workaround.hpp>
+#include <boost/concept/assert.hpp>
#include <boost/concept/detail/concept_def.hpp>
namespace boost
@@ -529,8 +530,8 @@
{
BOOST_CONCEPT_USAGE(NumericValue)
{
- function_requires< DefaultConstructible<Numeric> >();
- function_requires< CopyConstructible<Numeric> >();
+ BOOST_CONCEPT_ASSERT(( DefaultConstructible<Numeric> ));
+ BOOST_CONCEPT_ASSERT(( CopyConstructible<Numeric> ));
numeric_values<Numeric>::zero();
numeric_values<Numeric>::infinity();
}
Modified: branches/release/boost/graph/howard_cycle_ratio.hpp
==============================================================================
--- branches/release/boost/graph/howard_cycle_ratio.hpp (original)
+++ branches/release/boost/graph/howard_cycle_ratio.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -20,6 +20,7 @@
#include <boost/property_map/property_map.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graph_concepts.hpp>
+#include <boost/concept/assert.hpp>
/** @file howard_cycle_ratio.hpp
* @brief The implementation of the maximum/minimum cycle ratio/mean algorithm.
@@ -477,13 +478,13 @@
{
typedef typename graph_traits<TG>::directed_category DirCat;
BOOST_STATIC_ASSERT((is_convertible<DirCat*, directed_tag*>::value == true));
- function_requires< IncidenceGraphConcept<TG> >();
- function_requires< VertexListGraphConcept<TG> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<TG> ));
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<TG> ));
typedef typename graph_traits<TG>::vertex_descriptor Vertex;
- function_requires< ReadablePropertyMapConcept<TVIM, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<TVIM, Vertex> ));
typedef typename graph_traits<TG>::edge_descriptor Edge;
- function_requires< ReadablePropertyMapConcept<TEW1, Edge> >();
- function_requires< ReadablePropertyMapConcept<TEW2, Edge> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<TEW1, Edge> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<TEW2, Edge> ));
if(pcc == 0) {
return detail::mcr_howard<FT,TG, TVIM, TEW1, TEW2>(
Modified: branches/release/boost/graph/isomorphism.hpp
==============================================================================
--- branches/release/boost/graph/isomorphism.hpp (original)
+++ branches/release/boost/graph/isomorphism.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -15,6 +15,7 @@
#include <boost/utility.hpp>
#include <boost/detail/algorithm.hpp>
#include <boost/pending/indirect_cmp.hpp> // for make_indirect_pmap
+#include <boost/concept/assert.hpp>
#ifndef BOOST_GRAPH_ITERATION_MACROS_HPP
#define BOOST_ISO_INCLUDED_ITER_MACROS // local macro, see bottom of file
@@ -322,31 +323,31 @@
{
// Graph requirements
- function_requires< VertexListGraphConcept<Graph1> >();
- function_requires< EdgeListGraphConcept<Graph1> >();
- function_requires< VertexListGraphConcept<Graph2> >();
- function_requires< BidirectionalGraphConcept<Graph2> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph1> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph1> ));
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph2> ));
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph2> ));
typedef typename graph_traits<Graph1>::vertex_descriptor vertex1_t;
typedef typename graph_traits<Graph2>::vertex_descriptor vertex2_t;
typedef typename graph_traits<Graph1>::vertices_size_type size_type;
// Vertex invariant requirement
- function_requires< AdaptableUnaryFunctionConcept<Invariant1,
- size_type, vertex1_t> >();
- function_requires< AdaptableUnaryFunctionConcept<Invariant2,
- size_type, vertex2_t> >();
+ BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept<Invariant1,
+ size_type, vertex1_t> ));
+ BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept<Invariant2,
+ size_type, vertex2_t> ));
// Property map requirements
- function_requires< ReadWritePropertyMapConcept<IsoMapping, vertex1_t> >();
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<IsoMapping, vertex1_t> ));
typedef typename property_traits<IsoMapping>::value_type IsoMappingValue;
BOOST_STATIC_ASSERT((is_same<IsoMappingValue, vertex2_t>::value));
- function_requires< ReadablePropertyMapConcept<IndexMap1, vertex1_t> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap1, vertex1_t> ));
typedef typename property_traits<IndexMap1>::value_type IndexMap1Value;
BOOST_STATIC_ASSERT((is_convertible<IndexMap1Value, size_type>::value));
- function_requires< ReadablePropertyMapConcept<IndexMap2, vertex2_t> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap2, vertex2_t> ));
typedef typename property_traits<IndexMap2>::value_type IndexMap2Value;
BOOST_STATIC_ASSERT((is_convertible<IndexMap2Value, size_type>::value));
Modified: branches/release/boost/graph/johnson_all_pairs_shortest.hpp
==============================================================================
--- branches/release/boost/graph/johnson_all_pairs_shortest.hpp (original)
+++ branches/release/boost/graph/johnson_all_pairs_shortest.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -29,6 +29,7 @@
#include <boost/graph/dijkstra_shortest_paths.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/type_traits/same_traits.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
@@ -44,8 +45,8 @@
{
typedef graph_traits<VertexAndEdgeListGraph> Traits1;
typedef typename property_traits<Weight>::value_type DT;
- function_requires< BasicMatrixConcept<DistanceMatrix,
- typename Traits1::vertices_size_type, DT> >();
+ BOOST_CONCEPT_ASSERT(( BasicMatrixConcept<DistanceMatrix,
+ typename Traits1::vertices_size_type, DT> ));
typedef typename Traits1::directed_category DirCat;
bool is_undirected = is_same<DirCat, undirected_tag>::value;
Modified: branches/release/boost/graph/kruskal_min_spanning_tree.hpp
==============================================================================
--- branches/release/boost/graph/kruskal_min_spanning_tree.hpp (original)
+++ branches/release/boost/graph/kruskal_min_spanning_tree.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -28,6 +28,7 @@
#include <boost/graph/named_function_params.hpp>
#include <boost/pending/disjoint_sets.hpp>
#include <boost/pending/indirect_cmp.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
@@ -51,18 +52,18 @@
if (num_vertices(G) == 0) return; // Nothing to do in this case
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::edge_descriptor Edge;
- function_requires<VertexListGraphConcept<Graph> >();
- function_requires<EdgeListGraphConcept<Graph> >();
- function_requires<OutputIteratorConcept<OutputIterator, Edge> >();
- function_requires<ReadWritePropertyMapConcept<Rank, Vertex> >();
- function_requires<ReadWritePropertyMapConcept<Parent, Vertex> >();
- function_requires<ReadablePropertyMapConcept<Weight, Edge> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( OutputIteratorConcept<OutputIterator, Edge> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<Rank, Vertex> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<Parent, Vertex> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<Weight, Edge> ));
typedef typename property_traits<Weight>::value_type W_value;
typedef typename property_traits<Rank>::value_type R_value;
typedef typename property_traits<Parent>::value_type P_value;
- function_requires<ComparableConcept<W_value> >();
- function_requires<ConvertibleConcept<P_value, Vertex> >();
- function_requires<IntegerConcept<R_value> >();
+ BOOST_CONCEPT_ASSERT(( ComparableConcept<W_value> ));
+ BOOST_CONCEPT_ASSERT(( ConvertibleConcept<P_value, Vertex> ));
+ BOOST_CONCEPT_ASSERT(( IntegerConcept<R_value> ));
disjoint_sets<Rank, Parent> dset(rank, parent);
Modified: branches/release/boost/graph/neighbor_bfs.hpp
==============================================================================
--- branches/release/boost/graph/neighbor_bfs.hpp (original)
+++ branches/release/boost/graph/neighbor_bfs.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -24,13 +24,14 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/visitors.hpp>
#include <boost/graph/named_function_params.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
template <class Visitor, class Graph>
struct NeighborBFSVisitorConcept {
void constraints() {
- function_requires< CopyConstructibleConcept<Visitor> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Visitor> ));
vis.initialize_vertex(u, g);
vis.discover_vertex(u, g);
vis.examine_vertex(u, g);
@@ -133,13 +134,13 @@
Buffer& Q, BFSVisitor vis, ColorMap color)
{
- function_requires< BidirectionalGraphConcept<BidirectionalGraph> >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<BidirectionalGraph> ));
typedef graph_traits<BidirectionalGraph> GTraits;
typedef typename GTraits::vertex_descriptor Vertex;
typedef typename GTraits::edge_descriptor Edge;
- function_requires<
- NeighborBFSVisitorConcept<BFSVisitor, BidirectionalGraph> >();
- function_requires< ReadWritePropertyMapConcept<ColorMap, Vertex> >();
+ BOOST_CONCEPT_ASSERT((
+ NeighborBFSVisitorConcept<BFSVisitor, BidirectionalGraph> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<ColorMap, Vertex> ));
typedef typename property_traits<ColorMap>::value_type ColorValue;
typedef color_traits<ColorValue> Color;
Modified: branches/release/boost/graph/properties.hpp
==============================================================================
--- branches/release/boost/graph/properties.hpp (original)
+++ branches/release/boost/graph/properties.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -115,6 +115,7 @@
BOOST_DEF_PROPERTY(vertex, lowpoint);
BOOST_DEF_PROPERTY(vertex, potential);
BOOST_DEF_PROPERTY(vertex, update);
+ BOOST_DEF_PROPERTY(vertex, underlying);
BOOST_DEF_PROPERTY(edge, reverse);
BOOST_DEF_PROPERTY(edge, capacity);
BOOST_DEF_PROPERTY(edge, flow);
@@ -123,6 +124,7 @@
BOOST_DEF_PROPERTY(edge, discover_time);
BOOST_DEF_PROPERTY(edge, update);
BOOST_DEF_PROPERTY(edge, finished);
+ BOOST_DEF_PROPERTY(edge, underlying);
BOOST_DEF_PROPERTY(graph, visitor);
// These tags are used for property bundles
Modified: branches/release/boost/graph/reverse_graph.hpp
==============================================================================
--- branches/release/boost/graph/reverse_graph.hpp (original)
+++ branches/release/boost/graph/reverse_graph.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -27,17 +27,32 @@
template <typename EdgeDesc>
class reverse_graph_edge_descriptor {
public:
- EdgeDesc underlying_desc;
+ EdgeDesc underlying_descx; // Odd name is because this needs to be public but shouldn't be exposed to users anymore
+
+ private:
+ typedef EdgeDesc base_descriptor_type;
public:
- explicit reverse_graph_edge_descriptor(const EdgeDesc& underlying_desc = EdgeDesc())
- : underlying_desc(underlying_desc) {}
+ explicit reverse_graph_edge_descriptor(const EdgeDesc& underlying_descx = EdgeDesc())
+ : underlying_descx(underlying_descx) {}
friend bool operator==(const reverse_graph_edge_descriptor& a, const reverse_graph_edge_descriptor& b) {
- return a.underlying_desc == b.underlying_desc;
+ return a.underlying_descx == b.underlying_descx;
}
friend bool operator!=(const reverse_graph_edge_descriptor& a, const reverse_graph_edge_descriptor& b) {
- return a.underlying_desc != b.underlying_desc;
+ return a.underlying_descx != b.underlying_descx;
+ }
+ friend bool operator<(const reverse_graph_edge_descriptor& a, const reverse_graph_edge_descriptor& b) {
+ return a.underlying_descx < b.underlying_descx;
+ }
+ friend bool operator>(const reverse_graph_edge_descriptor& a, const reverse_graph_edge_descriptor& b) {
+ return a.underlying_descx > b.underlying_descx;
+ }
+ friend bool operator<=(const reverse_graph_edge_descriptor& a, const reverse_graph_edge_descriptor& b) {
+ return a.underlying_descx <= b.underlying_descx;
+ }
+ friend bool operator>=(const reverse_graph_edge_descriptor& a, const reverse_graph_edge_descriptor& b) {
+ return a.underlying_descx >= b.underlying_descx;
}
};
@@ -58,6 +73,18 @@
make_transform_iterator(ip.second, reverse_graph_edge_descriptor_maker<EdgeDesc>()));
}
+ // Get the underlying descriptor from a vertex or edge descriptor
+ template <typename Desc>
+ struct get_underlying_descriptor_from_reverse_descriptor {
+ typedef Desc type;
+ static Desc convert(const Desc& d) {return d;}
+ };
+ template <typename Desc>
+ struct get_underlying_descriptor_from_reverse_descriptor<reverse_graph_edge_descriptor<Desc> > {
+ typedef Desc type;
+ static Desc convert(const reverse_graph_edge_descriptor<Desc>& d) {return d.underlying_descx;}
+ };
+
template <bool isEdgeList> struct choose_rev_edge_iter { };
template <> struct choose_rev_edge_iter<true> {
template <class G> struct bind_ {
@@ -97,8 +124,7 @@
typedef transform_iterator<detail::reverse_graph_edge_descriptor_maker<typename Traits::edge_descriptor>, typename Traits::out_edge_iterator> in_edge_iterator;
// AdjacencyGraph requirements
- typedef typename adjacency_iterator_generator<Self,
- vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
+ typedef typename adjacency_iterator_generator<Self, vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
// VertexListGraph requirements
typedef typename Traits::vertex_iterator vertex_iterator;
@@ -117,14 +143,20 @@
#ifndef BOOST_GRAPH_NO_BUNDLED_PROPERTIES
// Bundled properties support
template<typename Descriptor>
- typename graph::detail::bundled_result<BidirectionalGraph, Descriptor>::type&
+ typename graph::detail::bundled_result<
+ BidirectionalGraph,
+ typename detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::type
+ >::type&
operator[](Descriptor x)
- { return m_g[x]; }
+ { return m_g[detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(x)]; }
template<typename Descriptor>
- typename graph::detail::bundled_result<BidirectionalGraph, Descriptor>::type const&
+ typename graph::detail::bundled_result<
+ BidirectionalGraph,
+ typename detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::type
+ >::type const&
operator[](Descriptor x) const
- { return m_g[x]; }
+ { return m_g[detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(x)]; }
#endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
static vertex_descriptor null_vertex()
@@ -236,13 +268,15 @@
}
template <class BidirectionalGraph, class GRef>
-inline std::pair<typename graph_traits<BidirectionalGraph>::edge_descriptor,
- bool>
+inline std::pair< typename graph_traits<reverse_graph<BidirectionalGraph,GRef> >::edge_descriptor,
+ bool>
edge(const typename graph_traits<BidirectionalGraph>::vertex_descriptor u,
const typename graph_traits<BidirectionalGraph>::vertex_descriptor v,
const reverse_graph<BidirectionalGraph,GRef>& g)
{
- return edge(v, u, g.m_g);
+ typedef typename graph_traits<BidirectionalGraph>::edge_descriptor underlying_edge_descriptor;
+ std::pair<underlying_edge_descriptor, bool> e = edge(v, u, g.m_g);
+ return std::make_pair(detail::reverse_graph_edge_descriptor<underlying_edge_descriptor>(e.first), e.second);
}
template <class BidirectionalGraph, class GRef>
@@ -280,14 +314,14 @@
inline typename graph_traits<BidirectionalGraph>::vertex_descriptor
source(const detail::reverse_graph_edge_descriptor<Edge>& e, const reverse_graph<BidirectionalGraph,GRef>& g)
{
- return target(e.underlying_desc, g.m_g);
+ return target(e.underlying_descx, g.m_g);
}
template <class Edge, class BidirectionalGraph, class GRef>
inline typename graph_traits<BidirectionalGraph>::vertex_descriptor
target(const detail::reverse_graph_edge_descriptor<Edge>& e, const reverse_graph<BidirectionalGraph,GRef>& g)
{
- return source(e.underlying_desc, g.m_g);
+ return source(e.underlying_descx, g.m_g);
}
@@ -309,18 +343,18 @@
friend reference
get(const reverse_graph_edge_property_map& m,
const key_type& e) {
- return get(m.underlying_pm, e.underlying_desc);
+ return get(m.underlying_pm, e.underlying_descx);
}
friend void
put(const reverse_graph_edge_property_map& m,
const key_type& e,
const value_type& v) {
- put(m.underlying_pm, e.underlying_desc, v);
+ put(m.underlying_pm, e.underlying_descx, v);
}
- reference operator[](const key_type& k) {
- return (this->underlying_pm)[k.underlying_desc];
+ reference operator[](const key_type& k) const {
+ return (this->underlying_pm)[k.underlying_descx];
}
};
@@ -388,6 +422,62 @@
put(get(p, g), k, val);
}
+// Get the underlying descriptor from a reverse_graph's wrapped edge descriptor
+
+namespace detail {
+ template <class E>
+ struct underlying_edge_desc_map_type {
+ E operator[](const reverse_graph_edge_descriptor<E>& k) const {
+ return k.underlying_descx;
+ }
+ };
+
+ template <class E>
+ E
+ get(underlying_edge_desc_map_type<E> m,
+ const reverse_graph_edge_descriptor<E>& k)
+ {
+ return m[k];
+ }
+};
+
+template <class E>
+struct property_traits<detail::underlying_edge_desc_map_type<E> > {
+ typedef detail::reverse_graph_edge_descriptor<E> key_type;
+ typedef E value_type;
+ typedef const E& reference;
+ typedef readable_property_map_tag category;
+};
+
+template <class Graph, class GRef>
+struct property_map<reverse_graph<Graph, GRef>, edge_underlying_t> {
+ private:
+ typedef typename graph_traits<Graph>::edge_descriptor ed;
+
+ public:
+ typedef detail::underlying_edge_desc_map_type<ed> type;
+ 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>
+get(edge_underlying_t,
+ const reverse_graph<Graph,GRef>& g)
+{
+ return detail::underlying_edge_desc_map_type<typename graph_traits<Graph>::edge_descriptor>();
+}
+
+template <class Graph, class GRef>
+typename graph_traits<Graph>::edge_descriptor
+get(edge_underlying_t,
+ const reverse_graph<Graph,GRef>& g,
+ const typename graph_traits<reverse_graph<Graph, GRef> >::edge_descriptor& k)
+{
+ return k.underlying_descx;
+}
+
+// Access to wrapped graph's graph properties
+
template<typename BidirectionalGraph, typename GRef, typename Tag,
typename Value>
inline void
Modified: branches/release/boost/graph/strong_components.hpp
==============================================================================
--- branches/release/boost/graph/strong_components.hpp (original)
+++ branches/release/boost/graph/strong_components.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -18,6 +18,7 @@
#include <boost/type_traits/conversion_traits.hpp>
#include <boost/static_assert.hpp>
#include <boost/graph/overloading.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
@@ -93,11 +94,11 @@
const bgl_named_params<P, T, R>& params)
{
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
- function_requires< ReadWritePropertyMapConcept<ComponentMap, Vertex> >();
- function_requires< ReadWritePropertyMapConcept<RootMap, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<ComponentMap, Vertex> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<RootMap, Vertex> ));
typedef typename property_traits<RootMap>::value_type RootV;
- function_requires< ConvertibleConcept<RootV, Vertex> >();
- function_requires< ReadWritePropertyMapConcept<DiscoverTime, Vertex> >();
+ BOOST_CONCEPT_ASSERT(( ConvertibleConcept<RootV, Vertex> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<DiscoverTime, Vertex> ));
typename property_traits<ComponentMap>::value_type total = 0;
@@ -282,7 +283,7 @@
kosaraju_strong_components(Graph& G, ComponentsMap c,
FinishTime finish_time, ColorMap color)
{
- function_requires< MutableGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( MutableGraphConcept<Graph> ));
// ...
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
Modified: branches/release/boost/graph/tiernan_all_cycles.hpp
==============================================================================
--- branches/release/boost/graph/tiernan_all_cycles.hpp (original)
+++ branches/release/boost/graph/tiernan_all_cycles.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -13,6 +13,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/properties.hpp>
+#include <boost/concept/assert.hpp>
#include <boost/concept/detail/concept_def.hpp>
namespace boost {
@@ -156,8 +157,8 @@
const Path& p,
const ClosedMatrix& m)
{
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< VertexIndexGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexIndexGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
// get the vertices in question
@@ -181,7 +182,7 @@
inline bool
can_wrap_path(const Graph& g, const Path& p)
{
- function_requires< IncidenceGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::out_edge_iterator OutIterator;
@@ -209,7 +210,7 @@
Path& p,
ClosedMatrix& closed)
{
- function_requires< IncidenceGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef typename graph_traits<Graph>::edge_descriptor Edge;
typedef typename graph_traits<Graph>::out_edge_iterator OutIterator;
@@ -238,7 +239,7 @@
inline bool
exhaust_paths(const Graph& g, Path& p, ClosedMatrix& closed)
{
- function_requires< GraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
// if there's more than one vertex in the path, this closes
@@ -272,10 +273,10 @@
std::size_t minlen,
std::size_t maxlen)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_descriptor Vertex;
typedef std::vector<Vertex> Path;
- function_requires< CycleVisitorConcept<Visitor,Path,Graph> >();
+ BOOST_CONCEPT_ASSERT(( CycleVisitorConcept<Visitor,Path,Graph> ));
typedef std::vector<Vertex> VertexList;
typedef std::vector<VertexList> ClosedMatrix;
@@ -320,7 +321,7 @@
std::size_t minlen,
std::size_t maxlen)
{
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef typename graph_traits<Graph>::vertex_iterator VertexIterator;
VertexIterator i, end;
Modified: branches/release/boost/graph/transitive_closure.hpp
==============================================================================
--- branches/release/boost/graph/transitive_closure.hpp (original)
+++ branches/release/boost/graph/transitive_closure.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -19,6 +19,7 @@
#include <boost/graph/topological_sort.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/named_function_params.hpp>
+#include <boost/concept/assert.hpp>
namespace boost
{
@@ -76,12 +77,12 @@
typedef typename graph_traits <
Graph >::adjacency_iterator adjacency_iterator;
- function_requires < VertexListGraphConcept < Graph > >();
- function_requires < AdjacencyGraphConcept < Graph > >();
- function_requires < VertexMutableGraphConcept < GraphTC > >();
- function_requires < EdgeMutableGraphConcept < GraphTC > >();
- function_requires < ReadablePropertyMapConcept < VertexIndexMap,
- vertex > >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept < Graph > ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept < Graph > ));
+ BOOST_CONCEPT_ASSERT(( VertexMutableGraphConcept < GraphTC > ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept < GraphTC > ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept < VertexIndexMap,
+ vertex > ));
typedef size_type cg_vertex;
std::vector < cg_vertex > component_number_vec(num_vertices(g));
@@ -302,8 +303,8 @@
typedef typename graph_traits < G >::vertex_descriptor vertex;
typedef typename graph_traits < G >::vertex_iterator vertex_iterator;
- function_requires < AdjacencyMatrixConcept < G > >();
- function_requires < EdgeMutableGraphConcept < G > >();
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept < G > ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept < G > ));
// Matrix form:
// for k
@@ -328,8 +329,8 @@
typedef typename graph_traits < G >::vertex_descriptor vertex;
typedef typename graph_traits < G >::vertex_iterator vertex_iterator;
- function_requires < AdjacencyMatrixConcept < G > >();
- function_requires < EdgeMutableGraphConcept < G > >();
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept < G > ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept < G > ));
// Make sure second loop will work
if (num_vertices(g) == 0)
Modified: branches/release/boost/graph/undirected_dfs.hpp
==============================================================================
--- branches/release/boost/graph/undirected_dfs.hpp (original)
+++ branches/release/boost/graph/undirected_dfs.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -13,6 +13,7 @@
#include <boost/graph/depth_first_search.hpp>
#include <vector>
+#include <boost/concept/assert.hpp>
namespace boost {
@@ -32,16 +33,16 @@
VertexColorMap vertex_color,
EdgeColorMap edge_color)
{
- function_requires<IncidenceGraphConcept<IncidenceGraph> >();
- function_requires<DFSVisitorConcept<DFSVisitor, IncidenceGraph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<IncidenceGraph> ));
+ BOOST_CONCEPT_ASSERT(( DFSVisitorConcept<DFSVisitor, IncidenceGraph> ));
typedef typename graph_traits<IncidenceGraph>::vertex_descriptor Vertex;
typedef typename graph_traits<IncidenceGraph>::edge_descriptor Edge;
- function_requires<ReadWritePropertyMapConcept<VertexColorMap,Vertex> >();
- function_requires<ReadWritePropertyMapConcept<EdgeColorMap,Edge> >();
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<VertexColorMap,Vertex> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<EdgeColorMap,Edge> ));
typedef typename property_traits<VertexColorMap>::value_type ColorValue;
typedef typename property_traits<EdgeColorMap>::value_type EColorValue;
- function_requires< ColorValueConcept<ColorValue> >();
- function_requires< ColorValueConcept<EColorValue> >();
+ BOOST_CONCEPT_ASSERT(( ColorValueConcept<ColorValue> ));
+ BOOST_CONCEPT_ASSERT(( ColorValueConcept<EColorValue> ));
typedef color_traits<ColorValue> Color;
typedef color_traits<EColorValue> EColor;
typedef typename graph_traits<IncidenceGraph>::out_edge_iterator Iter;
@@ -94,16 +95,16 @@
VertexColorMap vertex_color,
EdgeColorMap edge_color)
{
- function_requires<IncidenceGraphConcept<IncidenceGraph> >();
- function_requires<DFSVisitorConcept<DFSVisitor, IncidenceGraph> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<IncidenceGraph> ));
+ BOOST_CONCEPT_ASSERT(( DFSVisitorConcept<DFSVisitor, IncidenceGraph> ));
typedef typename graph_traits<IncidenceGraph>::vertex_descriptor Vertex;
typedef typename graph_traits<IncidenceGraph>::edge_descriptor Edge;
- function_requires<ReadWritePropertyMapConcept<VertexColorMap,Vertex> >();
- function_requires<ReadWritePropertyMapConcept<EdgeColorMap,Edge> >();
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<VertexColorMap,Vertex> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<EdgeColorMap,Edge> ));
typedef typename property_traits<VertexColorMap>::value_type ColorValue;
typedef typename property_traits<EdgeColorMap>::value_type EColorValue;
- function_requires< ColorValueConcept<ColorValue> >();
- function_requires< ColorValueConcept<EColorValue> >();
+ BOOST_CONCEPT_ASSERT(( ColorValueConcept<ColorValue> ));
+ BOOST_CONCEPT_ASSERT(( ColorValueConcept<EColorValue> ));
typedef color_traits<ColorValue> Color;
typedef color_traits<EColorValue> EColor;
typename graph_traits<IncidenceGraph>::out_edge_iterator ei, ei_end;
@@ -134,8 +135,8 @@
VertexColorMap vertex_color, EdgeColorMap edge_color,
Vertex start_vertex)
{
- function_requires<DFSVisitorConcept<DFSVisitor, Graph> >();
- function_requires<EdgeListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( DFSVisitorConcept<DFSVisitor, Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
typedef typename property_traits<VertexColorMap>::value_type ColorValue;
typedef color_traits<ColorValue> Color;
Modified: branches/release/libs/concept_check/reference.htm
==============================================================================
--- branches/release/libs/concept_check/reference.htm (original)
+++ branches/release/libs/concept_check/reference.htm 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -366,6 +366,12 @@
void function_requires();
</pre>
+ <p><code>function_requires()</code> has been deprecated in favor of <code>BOOST_CONCEPT_ASSERT</code>.
+ This means that <del><code>function_requires< Concept<Type> >();</code></del>
+ becomes <code>BOOST_CONCEPT_ASSERT((Concept<Type>));</code>
+ (don't forget to <code>#include "boost/concept/assert.hpp"</code>).
+
+
<h3><a name="deprecated-macros" id="deprecated-macros">Deprecated
Macros</a></h3>
<pre>
Modified: branches/release/libs/graph/doc/AStarHeuristic.html
==============================================================================
--- branches/release/libs/graph/doc/AStarHeuristic.html (original)
+++ branches/release/libs/graph/doc/AStarHeuristic.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -116,7 +116,7 @@
struct AStarHeuristicConcept {
void constraints()
{
- function_requires< CopyConstructibleConcept<Heuristic> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Heuristic> ));
h(u);
}
Heuristic h;
Modified: branches/release/libs/graph/doc/AdjacencyGraph.html
==============================================================================
--- branches/release/libs/graph/doc/AdjacencyGraph.html (original)
+++ branches/release/libs/graph/doc/AdjacencyGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -112,8 +112,8 @@
typedef typename boost::graph_traits<G>::adjacency_iterator
adjacency_iterator;
void constraints() {
- function_requires< IncidenceGraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<adjacency_iterator> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept<adjacency_iterator> ));
p = adjacent_vertices(v, g);
v = *p.first;
Modified: branches/release/libs/graph/doc/BidirectionalGraph.html
==============================================================================
--- branches/release/libs/graph/doc/BidirectionalGraph.html (original)
+++ branches/release/libs/graph/doc/BidirectionalGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -145,8 +145,8 @@
typedef typename boost::graph_traits<G>::in_edge_iterator
in_edge_iterator;
void constraints() {
- function_requires< IncidenceGraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<in_edge_iterator> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept<in_edge_iterator> ));
p = in_edges(v, g);
e = *p.first;
Modified: branches/release/libs/graph/doc/EdgeListGraph.html
==============================================================================
--- branches/release/libs/graph/doc/EdgeListGraph.html (original)
+++ branches/release/libs/graph/doc/EdgeListGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -146,8 +146,8 @@
typedef typename boost::graph_traits<G>::edge_iterator
edge_iterator;
void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<edge_iterator> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept<edge_iterator> ));
p = edges(g);
E = num_edges(g);
Modified: branches/release/libs/graph/doc/Graph.html
==============================================================================
--- branches/release/libs/graph/doc/Graph.html (original)
+++ branches/release/libs/graph/doc/Graph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -121,12 +121,12 @@
typedef typename boost::graph_traits<G>::traversal_category traversal_category;
void constraints() {
- function_requires< DefaultConstructibleConcept<vertex_descriptor> >();
- function_requires< EqualityComparableConcept<vertex_descriptor> >();
- function_requires< AssignableConcept<vertex_descriptor> >();
- function_requires< DefaultConstructibleConcept<edge_descriptor> >();
- function_requires< EqualityComparableConcept<edge_descriptor> >();
- function_requires< AssignableConcept<edge_descriptor> >();
+ BOOST_CONCEPT_ASSERT(( DefaultConstructibleConcept<vertex_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( EqualityComparableConcept<vertex_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( AssignableConcept<vertex_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( DefaultConstructibleConcept<edge_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( EqualityComparableConcept<edge_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( AssignableConcept<edge_descriptor> ));
}
G g;
};
Modified: branches/release/libs/graph/doc/IncidenceGraph.html
==============================================================================
--- branches/release/libs/graph/doc/IncidenceGraph.html (original)
+++ branches/release/libs/graph/doc/IncidenceGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -162,8 +162,8 @@
{
typedef typename boost::graph_traits<G>::out_edge_iterator out_edge_iterator;
void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<out_edge_iterator> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept<out_edge_iterator> ));
p = out_edges(u, g);
e = *p.first;
Modified: branches/release/libs/graph/doc/KeyedUpdatableQueue.html
==============================================================================
--- branches/release/libs/graph/doc/KeyedUpdatableQueue.html (original)
+++ branches/release/libs/graph/doc/KeyedUpdatableQueue.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -63,8 +63,8 @@
typedef typename Q::key_map key_map;
void constraints() {
- function_requires< UpdatableQueue<Q> >();
- function_requires< ReadWritePropertyMap< key_map, typename Buffer<Q>::value_type > >();
+ BOOST_CONCEPT_ASSERT(( UpdatableQueue<Q> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMap< key_map, typename Buffer<Q>::value_type > ));
}
void const_constraints(const Q& cq) {
Modified: branches/release/libs/graph/doc/MutableGraph.html
==============================================================================
--- branches/release/libs/graph/doc/MutableGraph.html (original)
+++ branches/release/libs/graph/doc/MutableGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -250,7 +250,7 @@
struct MutableIncidenceGraphConcept
{
void constraints() {
- function_requires< MutableGraph<G> >();
+ BOOST_CONCEPT_ASSERT(( MutableGraph<G> ));
remove_edge(iter, g);
remove_out_edge_if(u, p, g);
}
@@ -265,7 +265,7 @@
struct MutableBidirectionalGraphConcept
{
void constraints() {
- function_requires< MutableIncidenceGraph<G> >();
+ BOOST_CONCEPT_ASSERT(( MutableIncidenceGraph<G> ));
remove_in_edge_if(u, p, g);
}
G g;
@@ -278,7 +278,7 @@
struct MutableEdgeListGraphConcept
{
void constraints() {
- function_requires< MutableGraph<G> >();
+ BOOST_CONCEPT_ASSERT(( MutableGraph<G> ));
remove_edge_if(p, g);
}
G g;
Modified: branches/release/libs/graph/doc/MutablePropertyGraph.html
==============================================================================
--- branches/release/libs/graph/doc/MutablePropertyGraph.html (original)
+++ branches/release/libs/graph/doc/MutablePropertyGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -125,7 +125,7 @@
{
typedef typename boost::graph_traits<G>::edge_descriptor edge_descriptor;
void constraints() {
- function_requires< MutableGraphConcept<G> >();
+ BOOST_CONCEPT_ASSERT(( MutableGraphConcept<G> ));
v = add_vertex(vp, g);
p = add_edge(u, v, ep, g);
}
Modified: branches/release/libs/graph/doc/PropertyGraph.html
==============================================================================
--- branches/release/libs/graph/doc/PropertyGraph.html (original)
+++ branches/release/libs/graph/doc/PropertyGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -173,9 +173,9 @@
typedef typename property_map<G, PropertyTag>::type Map;
typedef typename property_map<G, PropertyTag>::const_type const_Map;
void constraints() {
- function_requires< GraphConcept<G> >();
- function_requires< ReadWritePropertyMapConcept<Map, X> >();
- function_requires< ReadablePropertyMapConcept<const_Map, X> >();
+ BOOST_CONCEPT_ASSERT(( GraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<Map, X> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<const_Map, X> ));
Map pmap = get(PropertyTag(), g);
pval = get(PropertyTag(), g, x);
Modified: branches/release/libs/graph/doc/UpdatableQueue.html
==============================================================================
--- branches/release/libs/graph/doc/UpdatableQueue.html (original)
+++ branches/release/libs/graph/doc/UpdatableQueue.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -58,7 +58,7 @@
struct UpdatableQueueConcept
{
void constraints() {
- function_requires< Buffer<Q> >();
+ BOOST_CONCEPT_ASSERT(( Buffer<Q> ));
q.update(g_ct);
}
Modified: branches/release/libs/graph/doc/VertexAndEdgeListGraph.html
==============================================================================
--- branches/release/libs/graph/doc/VertexAndEdgeListGraph.html (original)
+++ branches/release/libs/graph/doc/VertexAndEdgeListGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -51,8 +51,8 @@
struct VertexAndEdgeListGraphConcept
{
void constraints() {
- function_requires< VertexListGraphConcept<G> >();
- function_requires< EdgeListGraphConcept<G> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<G> ));
}
};
</PRE>
Modified: branches/release/libs/graph/doc/VertexListGraph.html
==============================================================================
--- branches/release/libs/graph/doc/VertexListGraph.html (original)
+++ branches/release/libs/graph/doc/VertexListGraph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -121,9 +121,9 @@
typedef typename boost::graph_traits<G>::vertex_iterator
vertex_iterator;
void constraints() {
- function_requires< IncidenceGraphConcept<G> >();
- function_requires< AdjacencyGraphConcept<G> >();
- function_requires< MultiPassInputIteratorConcept<vertex_iterator> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept<vertex_iterator> ));
p = vertices(g);
V = num_vertices(g);
Modified: branches/release/libs/graph/doc/biconnected_components.w
==============================================================================
--- branches/release/libs/graph/doc/biconnected_components.w (original)
+++ branches/release/libs/graph/doc/biconnected_components.w 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -156,11 +156,11 @@
@d Concept checking of type parameters
@{
-function_requires< VertexListGraphConcept<Graph> >();
-function_requires< IncidenceGraphConcept<Graph> >();
-function_requires< WritablePropertyMapConcept<ComponentMap, edge_t> >();
-function_requires< ReadWritePropertyMapConcept<DiscoverTimeMap, vertex_t> >();
-function_requires< ReadWritePropertyMapConcept<LowPointMap, vertex_t> >();
+BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept<ComponentMap, edge_t> ));
+BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<DiscoverTimeMap, vertex_t> ));
+BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<LowPointMap, vertex_t> ));
@}
The first step of the algorithm is to initialize the discover times of
@@ -286,6 +286,7 @@
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/property_map/property_map.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
@<Biconnected Components Algorithm@>
Modified: branches/release/libs/graph/doc/constructing_algorithms.html
==============================================================================
--- branches/release/libs/graph/doc/constructing_algorithms.html (original)
+++ branches/release/libs/graph/doc/constructing_algorithms.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -79,7 +79,7 @@
href="./VertexListGraph.html">VertexListGraph</a>. This is enforced by
the use of those graph operations in the algorithm, and furthermore by
our explicit requirement added as a concept check with
-<TT>function_requires()</TT> (see Section <A
+<TT>BOOST_CONCEPT_ASSERT()</TT> (see Section <A
HREF="../../concept_check/concept_check.htm">Concept
Checking</A> for more details about concept checking).
@@ -122,10 +122,10 @@
typedef typename property_traits<Color>::value_type ColorType;
typedef typename property_traits<Order>::value_type OrderType;
- function_requires< VertexListGraphConcept<VertexListGraph> >();
- function_requires< ReadWritePropertyMapConcept<Color, vertex_descriptor> >();
- function_requires< IntegerConcept<ColorType> >();
- function_requires< ReadablePropertyMapConcept<Order, size_type> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<VertexListGraph> ));
+ BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<Color, vertex_descriptor> ));
+ BOOST_CONCEPT_ASSERT(( IntegerConcept<ColorType> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<Order, size_type> ));
BOOST_STATIC_ASSERT((is_same<OrderType, vertex_descriptor>::value));
size_type max_color = 0;
Modified: branches/release/libs/graph/doc/isomorphism-impl-v2.w
==============================================================================
--- branches/release/libs/graph/doc/isomorphism-impl-v2.w (original)
+++ branches/release/libs/graph/doc/isomorphism-impl-v2.w 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -388,31 +388,31 @@
@d Concept checking
@{
// Graph requirements
-function_requires< VertexListGraphConcept<Graph1> >();
-function_requires< EdgeListGraphConcept<Graph1> >();
-function_requires< VertexListGraphConcept<Graph2> >();
-function_requires< BidirectionalGraphConcept<Graph2> >();
+BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph1> ));
+BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph1> ));
+BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph2> ));
+BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph2> ));
typedef typename graph_traits<Graph1>::vertex_descriptor vertex1_t;
typedef typename graph_traits<Graph2>::vertex_descriptor vertex2_t;
typedef typename graph_traits<Graph1>::vertices_size_type size_type;
// Vertex invariant requirement
-function_requires< AdaptableUnaryFunctionConcept<Invariant1,
- size_type, vertex1_t> >();
-function_requires< AdaptableUnaryFunctionConcept<Invariant2,
- size_type, vertex2_t> >();
+BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept<Invariant1,
+ size_type, vertex1_t> ));
+BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept<Invariant2,
+ size_type, vertex2_t> ));
// Property map requirements
-function_requires< ReadWritePropertyMapConcept<IsoMapping, vertex1_t> >();
+BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<IsoMapping, vertex1_t> ));
typedef typename property_traits<IsoMapping>::value_type IsoMappingValue;
BOOST_STATIC_ASSERT((is_same<IsoMappingValue, vertex2_t>::value));
-function_requires< ReadablePropertyMapConcept<IndexMap1, vertex1_t> >();
+BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap1, vertex1_t> ));
typedef typename property_traits<IndexMap1>::value_type IndexMap1Value;
BOOST_STATIC_ASSERT((is_convertible<IndexMap1Value, size_type>::value));
-function_requires< ReadablePropertyMapConcept<IndexMap2, vertex2_t> >();
+BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap2, vertex2_t> ));
typedef typename property_traits<IndexMap2>::value_type IndexMap2Value;
BOOST_STATIC_ASSERT((is_convertible<IndexMap2Value, size_type>::value));
@}
Modified: branches/release/libs/graph/doc/isomorphism-impl-v3.w
==============================================================================
--- branches/release/libs/graph/doc/isomorphism-impl-v3.w (original)
+++ branches/release/libs/graph/doc/isomorphism-impl-v3.w 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -507,31 +507,31 @@
@d Concept checking
@{
// Graph requirements
-function_requires< VertexListGraphConcept<Graph1> >();
-function_requires< EdgeListGraphConcept<Graph1> >();
-function_requires< VertexListGraphConcept<Graph2> >();
-function_requires< BidirectionalGraphConcept<Graph2> >();
+BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph1> ));
+BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph1> ));
+BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph2> ));
+BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph2> ));
typedef typename graph_traits<Graph1>::vertex_descriptor vertex1_t;
typedef typename graph_traits<Graph2>::vertex_descriptor vertex2_t;
typedef typename graph_traits<Graph1>::vertices_size_type size_type;
// Vertex invariant requirement
-function_requires< AdaptableUnaryFunctionConcept<Invariant1,
- size_type, vertex1_t> >();
-function_requires< AdaptableUnaryFunctionConcept<Invariant2,
- size_type, vertex2_t> >();
+BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept<Invariant1,
+ size_type, vertex1_t> ));
+BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept<Invariant2,
+ size_type, vertex2_t> ));
// Property map requirements
-function_requires< ReadWritePropertyMapConcept<IsoMapping, vertex1_t> >();
+BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<IsoMapping, vertex1_t> ));
typedef typename property_traits<IsoMapping>::value_type IsoMappingValue;
BOOST_STATIC_ASSERT((is_same<IsoMappingValue, vertex2_t>::value));
-function_requires< ReadablePropertyMapConcept<IndexMap1, vertex1_t> >();
+BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap1, vertex1_t> ));
typedef typename property_traits<IndexMap1>::value_type IndexMap1Value;
BOOST_STATIC_ASSERT((is_convertible<IndexMap1Value, size_type>::value));
-function_requires< ReadablePropertyMapConcept<IndexMap2, vertex2_t> >();
+BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap2, vertex2_t> ));
typedef typename property_traits<IndexMap2>::value_type IndexMap2Value;
BOOST_STATIC_ASSERT((is_convertible<IndexMap2Value, size_type>::value));
@}
Modified: branches/release/libs/graph/doc/isomorphism-impl.w
==============================================================================
--- branches/release/libs/graph/doc/isomorphism-impl.w (original)
+++ branches/release/libs/graph/doc/isomorphism-impl.w 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -301,21 +301,21 @@
@d Concept checking
@{
// Graph requirements
-function_requires< VertexListGraphConcept<Graph1> >();
-function_requires< EdgeListGraphConcept<Graph1> >();
-function_requires< VertexListGraphConcept<Graph2> >();
-function_requires< BidirectionalGraphConcept<Graph2> >();
+BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph1> ));
+BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph1> ));
+BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph2> ));
+BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph2> ));
// Property map requirements
-function_requires< ReadWritePropertyMapConcept<IndexMapping, vertex1_t> >();
+BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept<IndexMapping, vertex1_t> ));
typedef typename property_traits<IndexMapping>::value_type IndexMappingValue;
BOOST_STATIC_ASSERT((is_same<IndexMappingValue, vertex2_t>::value));
-function_requires< ReadablePropertyMapConcept<IndexMap1, vertex1_t> >();
+BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap1, vertex1_t> ));
typedef typename property_traits<IndexMap1>::value_type IndexMap1Value;
BOOST_STATIC_ASSERT((is_convertible<IndexMap1Value, size_type>::value));
-function_requires< ReadablePropertyMapConcept<IndexMap2, vertex2_t> >();
+BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<IndexMap2, vertex2_t> ));
typedef typename property_traits<IndexMap2>::value_type IndexMap2Value;
BOOST_STATIC_ASSERT((is_convertible<IndexMap2Value, size_type>::value));
@}
Modified: branches/release/libs/graph/doc/leda_conversion.html
==============================================================================
--- branches/release/libs/graph/doc/leda_conversion.html (original)
+++ branches/release/libs/graph/doc/leda_conversion.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -236,9 +236,9 @@
main(int,char*[])
{
typedef GRAPH<int,int> Graph;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< BidirectionalGraphConcept<Graph> >();
- function_requires< MutableGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableGraphConcept<Graph> ));
return 0;
}
</PRE>
Modified: branches/release/libs/graph/doc/reverse_graph.html
==============================================================================
--- branches/release/libs/graph/doc/reverse_graph.html (original)
+++ branches/release/libs/graph/doc/reverse_graph.html 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -27,7 +27,7 @@
a BidirectionalGraph,
effectively transposing the graph. The construction of the
<tt>reverse_graph</tt> is constant time, providing a highly efficient
-way to obtain a transposed-view of a graph.
+way to obtain a transposed view of a graph.
<H3>Example</H3>
@@ -215,6 +215,16 @@
<hr>
+<tt>property_map<reverse_graph, edge_underlying_t>::type</tt><br>
+and<br>
+<tt>property_map<reverse_graph, edge_underlying_t>::const_type</tt>
+<br><br>
+An edge property type mapping from edge descriptors in the <tt>reverse_graph</tt> to
+edge descriptors in the underlying <tt>BidirectionalGraph</tt> object.
+
+<hr>
+
+
<H2>Member Functions</H2>
<hr>
@@ -359,6 +369,16 @@
<hr>
<pre>
+property_map<reverse_graph, edge_underlying_t>::const_type
+get(PropertyTag, const reverse_graph& g)
+</pre>
+Returns a property map object that converts from edge descriptors in the
+<tt>reverse_graph</tt> to edge descriptors in the underlying
+<tt>BidirectionalGraph</tt> object.
+
+<hr>
+
+<pre>
template <class PropertyTag, class X>
typename property_traits<property_map<reverse_graph, PropertyTag>::const_type>::value_type
get(PropertyTag, const reverse_graph& g, X x)
@@ -368,6 +388,13 @@
<hr>
<pre>
+typename graph_traits<BidirectionalGraph>::edge_descriptor
+get(edge_underlying_t, const reverse_graph& g, edge_descriptor e)
+</pre>
+This returns the underlying edge descriptor for the edge <tt>e</tt> in the <tt>reverse_graph</tt>.
+<hr>
+
+<pre>
template <class PropertyTag, class X, class Value>
void
put(PropertyTag, const reverse_graph& g, X x, const Value& value)
Modified: branches/release/libs/graph/doc/transitive_closure.w
==============================================================================
--- branches/release/libs/graph/doc/transitive_closure.w (original)
+++ branches/release/libs/graph/doc/transitive_closure.w 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -160,11 +160,11 @@
@d Concept checking
@{
-function_requires< VertexListGraphConcept<Graph> >();
-function_requires< AdjacencyGraphConcept<Graph> >();
-function_requires< VertexMutableGraphConcept<GraphTC> >();
-function_requires< EdgeMutableGraphConcept<GraphTC> >();
-function_requires< ReadablePropertyMapConcept<VertexIndexMap, vertex> >();
+BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+BOOST_CONCEPT_ASSERT(( VertexMutableGraphConcept<GraphTC> ));
+BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept<GraphTC> ));
+BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept<VertexIndexMap, vertex> ));
@}
\noindent To simplify the code in the rest of the function we make the
@@ -566,8 +566,8 @@
typedef typename graph_traits<G>::vertex_descriptor vertex;
typedef typename graph_traits<G>::vertex_iterator vertex_iterator;
- function_requires< AdjacencyMatrixConcept<G> >();
- function_requires< EdgeMutableGraphConcept<G> >();
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept<G> ));
// Matrix form:
// for k
@@ -597,8 +597,8 @@
typedef typename graph_traits<G>::vertex_descriptor vertex;
typedef typename graph_traits<G>::vertex_iterator vertex_iterator;
- function_requires< AdjacencyMatrixConcept<G> >();
- function_requires< EdgeMutableGraphConcept<G> >();
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<G> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept<G> ));
// Make sure second loop will work
if (num_vertices(g) == 0)
@@ -671,6 +671,7 @@
#include <boost/graph/topological_sort.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/named_function_params.hpp>
+#include <boost/concept/assert.hpp>
namespace boost {
Modified: branches/release/libs/graph/example/implicit_graph.cpp
==============================================================================
--- branches/release/libs/graph/example/implicit_graph.cpp (original)
+++ branches/release/libs/graph/example/implicit_graph.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -4,7 +4,7 @@
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
-
+#include <boost/concept/assert.hpp>
#include <boost/graph/adjacency_iterator.hpp>
#include <boost/graph/dijkstra_shortest_paths.hpp>
#include <boost/graph/graph_concepts.hpp>
@@ -444,15 +444,15 @@
// Check the concepts that graph models. This is included to demonstrate
// how concept checking works, but is not required for a working program
// since Boost algorithms do their own concept checking.
- function_requires< BidirectionalGraphConcept<ring_graph> >();
- function_requires< AdjacencyGraphConcept<ring_graph> >();
- function_requires< VertexListGraphConcept<ring_graph> >();
- function_requires< EdgeListGraphConcept<ring_graph> >();
- function_requires< AdjacencyMatrixConcept<ring_graph> >();
- function_requires<
- ReadablePropertyMapConcept<const_edge_weight_map, edge_descriptor> >();
- function_requires<
- ReadablePropertyGraphConcept<ring_graph, edge_descriptor, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<ring_graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<ring_graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<ring_graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<ring_graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<ring_graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyMapConcept<const_edge_weight_map, edge_descriptor> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<ring_graph, edge_descriptor, edge_weight_t> ));
// Specify the size of the graph on the command line, or use a default size
// of 5.
Modified: branches/release/libs/graph/example/leda-concept-check.cpp
==============================================================================
--- branches/release/libs/graph/example/leda-concept-check.cpp (original)
+++ branches/release/libs/graph/example/leda-concept-check.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -7,15 +7,16 @@
//=======================================================================
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/leda_graph.hpp>
+#include <boost/concept/assert.hpp>
int
main()
{
using namespace boost;
- typedef leda::GRAPH < int, int >Graph;
- function_requires < VertexListGraphConcept < Graph > >();
- function_requires < BidirectionalGraphConcept < Graph > >();
- function_requires < VertexMutableGraphConcept < Graph > >();
- function_requires < EdgeMutableGraphConcept < Graph > >();
+ typedef leda::GRAPH<int, int> Graph;
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept< Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutableGraphConcept< Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept<Graph> ));
return EXIT_SUCCESS;
}
Modified: branches/release/libs/graph/example/loops_dfs.cpp
==============================================================================
--- branches/release/libs/graph/example/loops_dfs.cpp (original)
+++ branches/release/libs/graph/example/loops_dfs.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -6,6 +6,7 @@
// http://www.boost.org/LICENSE_1_0.txt)
//=======================================================================
#include <boost/config.hpp>
+#include <boost/concept/assert.hpp>
#include <iostream>
#include <fstream>
#include <stack>
@@ -47,7 +48,7 @@
const Graph & g,
Loops & loops) // A container of sets of vertices
{
- function_requires < BidirectionalGraphConcept < Graph > >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
typedef typename graph_traits < Graph >::edge_descriptor Edge;
typedef typename graph_traits < Graph >::vertex_descriptor Vertex;
std::vector < Edge > back_edges;
@@ -69,7 +70,7 @@
Graph >::edge_descriptor back_edge, const Graph & g,
Set & loop_set)
{
- function_requires < BidirectionalGraphConcept < Graph > >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
typedef typename graph_traits < Graph >::vertex_descriptor Vertex;
typedef color_traits < default_color_type > Color;
Modified: branches/release/libs/graph/example/put-get-helper-eg.cpp
==============================================================================
--- branches/release/libs/graph/example/put-get-helper-eg.cpp (original)
+++ branches/release/libs/graph/example/put-get-helper-eg.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -8,6 +8,7 @@
#include <vector>
#include <string>
#include <boost/property_map/property_map.hpp>
+#include <boost/concept/assert.hpp>
#ifdef BOOST_NO_STD_ITERATOR_TRAITS
#error This examples requires a compiler that provides a working std::iterator_traits
@@ -53,6 +54,6 @@
typedef foo::iterator_property_map < vec_t::iterator,
boost::identity_property_map > pmap_t;
using namespace boost;
- function_requires < Mutable_LvaluePropertyMapConcept < pmap_t, int > >();
+ BOOST_CONCEPT_ASSERT(( Mutable_LvaluePropertyMapConcept<pmap_t, int> ));
return 0;
}
Modified: branches/release/libs/graph/test/adj_list_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/adj_list_cc.cpp (original)
+++ branches/release/libs/graph/test/adj_list_cc.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -9,6 +9,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/adjacency_list.hpp>
+#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -21,20 +22,20 @@
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableIncidenceGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list<vecS, vecS, bidirectionalS,
@@ -43,21 +44,21 @@
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< BidirectionalGraphConcept<Graph> >();
- function_requires< MutableBidirectionalGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list< listS, listS, directedS,
@@ -66,20 +67,20 @@
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableIncidenceGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list< listS, listS, undirectedS,
@@ -88,20 +89,20 @@
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableBidirectionalGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
// Checking adjacency_list with EdgeList=setS
{
@@ -111,21 +112,21 @@
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< BidirectionalGraphConcept<Graph> >();
- function_requires< MutableBidirectionalGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list< setS, listS, directedS,
@@ -134,20 +135,20 @@
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableIncidenceGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_list< setS, listS, undirectedS,
@@ -156,105 +157,105 @@
> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableBidirectionalGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
// Check adjacency_list without any properties
{
typedef adjacency_list<vecS, vecS, directedS > Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableIncidenceGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
}
{
typedef adjacency_list<vecS, vecS, bidirectionalS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< BidirectionalGraphConcept<Graph> >();
- function_requires< MutableBidirectionalGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
}
{
typedef adjacency_list< listS, listS, directedS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableIncidenceGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
}
{
typedef adjacency_list< listS, listS, undirectedS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableBidirectionalGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
}
// Checking EdgeList=setS with no properties
{
typedef adjacency_list<setS, vecS, bidirectionalS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< BidirectionalGraphConcept<Graph> >();
- function_requires< MutableBidirectionalGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
- function_requires< ReadablePropertyGraphConcept<Graph,
- Vertex, vertex_index_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph,
+ Vertex, vertex_index_t> ));
}
{
typedef adjacency_list< setS, listS, directedS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< MutableIncidenceGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
}
{
typedef adjacency_list< setS, listS, undirectedS> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableBidirectionalGraphConcept<Graph> >();
- function_requires< MutableEdgeListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept<Graph> ));
}
return 0;
}
Modified: branches/release/libs/graph/test/adj_matrix_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/adj_matrix_cc.cpp (original)
+++ branches/release/libs/graph/test/adj_matrix_cc.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -9,6 +9,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/adjacency_matrix.hpp>
+#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -16,21 +17,21 @@
// Check adjacency_matrix without properties
{
typedef adjacency_matrix<directedS> Graph;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableGraphConcept<Graph> >();
- function_requires< AdjacencyMatrixConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
}
{
typedef adjacency_matrix<undirectedS> Graph;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< MutableGraphConcept<Graph> >();
- function_requires< AdjacencyMatrixConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( MutableGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
}
// Check adjacency_matrix with properties
{
@@ -39,17 +40,17 @@
property<edge_weight_t, float> > Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< AdjacencyMatrixConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires< ReadablePropertyGraphConcept<Graph,
- Vertex, vertex_index_t> >();
- function_requires< PropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires< PropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph,
+ Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
{
typedef adjacency_matrix<undirectedS,
@@ -57,17 +58,17 @@
property<edge_weight_t, float> > Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< EdgeListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< AdjacencyMatrixConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires< ReadablePropertyGraphConcept<Graph,
- Vertex, vertex_index_t> >();
- function_requires< PropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires< PropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph,
+ Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Edge, edge_weight_t> ));
}
return 0;
}
Modified: branches/release/libs/graph/test/edge_list_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/edge_list_cc.cpp (original)
+++ branches/release/libs/graph/test/edge_list_cc.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -9,6 +9,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/edge_list.hpp>
+#include <boost/concept/assert.hpp>
#include <cstddef>
#include <iterator>
@@ -24,10 +25,10 @@
typedef graph_traits<EdgeList>::edge_descriptor Edge;
- function_requires< EdgeListGraphConcept<EdgeList> >();
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<EdgeList> ));
- function_requires< ReadablePropertyGraphConcept<EdgeList, Edge,
- edge_index_t> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<EdgeList, Edge,
+ edge_index_t> ));
}
return 0;
}
Modified: branches/release/libs/graph/test/filtered_graph_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/filtered_graph_cc.cpp (original)
+++ branches/release/libs/graph/test/filtered_graph_cc.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -10,6 +10,7 @@
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/filtered_graph.hpp>
+#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -22,12 +23,12 @@
typedef filtered_graph<Graph, is_residual_edge<ResCapMap> > ResGraph;
typedef graph_traits<ResGraph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<ResGraph> >();
- function_requires< EdgeListGraphConcept<ResGraph> >();
- function_requires< IncidenceGraphConcept<ResGraph> >();
- function_requires< AdjacencyGraphConcept<ResGraph> >();
- function_requires< PropertyGraphConcept<ResGraph, Edge,
- edge_residual_capacity_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<ResGraph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept<ResGraph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<ResGraph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<ResGraph> ));
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<ResGraph, Edge,
+ edge_residual_capacity_t> ));
}
// Check filtered_graph with bidirectional adjacency_list
{
@@ -35,7 +36,7 @@
no_property, property<edge_residual_capacity_t, long> > Graph;
typedef property_map<Graph, edge_residual_capacity_t>::type ResCapMap;
typedef filtered_graph<Graph, is_residual_edge<ResCapMap> > ResGraph;
- function_requires< BidirectionalGraphConcept<ResGraph> >();
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<ResGraph> ));
}
return 0;
}
Modified: branches/release/libs/graph/test/graph_concepts.cpp
==============================================================================
--- branches/release/libs/graph/test/graph_concepts.cpp (original)
+++ branches/release/libs/graph/test/graph_concepts.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -8,6 +8,7 @@
//=======================================================================
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
+#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -19,22 +20,22 @@
typedef incidence_graph_archetype<Vertex, directed_tag,
allow_parallel_edge_tag> Graph1;
- function_requires< IncidenceGraphConcept<Graph1> >();
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph1> ));
typedef adjacency_graph_archetype<Vertex, directed_tag,
allow_parallel_edge_tag> Graph2;
- function_requires< AdjacencyGraphConcept<Graph2> >();
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph2> ));
typedef vertex_list_graph_archetype<Vertex, directed_tag,
allow_parallel_edge_tag> Graph3;
- function_requires< VertexListGraphConcept<Graph3> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph3> ));
- function_requires< ColorValueConcept<color_value_archetype> >();
+ BOOST_CONCEPT_ASSERT(( ColorValueConcept<color_value_archetype> ));
typedef incidence_graph_archetype<Vertex, directed_tag, allow_parallel_edge_tag> G;
typedef property_graph_archetype<G, vertex_color_t, color_value_archetype>
Graph4;
- function_requires< PropertyGraphConcept<Graph4, Vertex, vertex_color_t> >();
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph4, Vertex, vertex_color_t> ));
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-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -10,6 +10,7 @@
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/grid_graph.hpp>
+#include <boost/concept/assert.hpp>
#define DIMENSIONS 3
using namespace boost;
@@ -20,14 +21,14 @@
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires<BidirectionalGraphConcept<Graph> >();
- function_requires<VertexListGraphConcept<Graph> >();
- function_requires<EdgeListGraphConcept<Graph> >();
- function_requires<IncidenceGraphConcept<Graph> >();
- function_requires<AdjacencyGraphConcept<Graph> >();
- function_requires<AdjacencyMatrixConcept<Graph> >();
- function_requires<ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> >();
+ BOOST_CONCEPT_ASSERT((BidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((EdgeListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((AdjacencyMatrixConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> ));
return (0);
}
Modified: branches/release/libs/graph/test/leda_graph_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/leda_graph_cc.cpp (original)
+++ branches/release/libs/graph/test/leda_graph_cc.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -8,7 +8,7 @@
//=======================================================================
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/leda_graph.hpp>
-
+#include <boost/concept/assert.hpp>
int
main(int,char*[])
@@ -18,21 +18,21 @@
typedef leda::GRAPH<int,int> Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< BidirectionalGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< VertexMutableGraphConcept<Graph> >();
- function_requires< EdgeMutableGraphConcept<Graph> >();
- function_requires< VertexMutablePropertyGraphConcept<Graph> >();
- function_requires< EdgeMutablePropertyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, vertex_all_t> >();
- function_requires<
- LvaluePropertyGraphConcept<Graph, Vertex, edge_all_t> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutableGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, vertex_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Edge, edge_index_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, vertex_all_t> ));
+ BOOST_CONCEPT_ASSERT((
+ LvaluePropertyGraphConcept<Graph, Vertex, edge_all_t> ));
}
return 0;
}
Modified: branches/release/libs/graph/test/read_propmap.cpp
==============================================================================
--- branches/release/libs/graph/test/read_propmap.cpp (original)
+++ branches/release/libs/graph/test/read_propmap.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -6,6 +6,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/adjacency_list.hpp>
+#include <boost/concept/assert.hpp>
// Test contributed by Dmitry that validates a read-only property map bug
// for bundled properties.
@@ -24,7 +25,7 @@
typedef property_map<graph_t, double EdgeProp::*>::type WeightMap;
typedef property_map<graph_t, double EdgeProp::*>::const_type cWeightMap;
typedef graph_traits<graph_t>::edge_descriptor Edge;
- function_requires<ReadablePropertyMapConcept<WeightMap, Edge> >();
- function_requires<ReadablePropertyMapConcept<cWeightMap, Edge> >();
+ BOOST_CONCEPT_ASSERT((ReadablePropertyMapConcept<WeightMap, Edge> ));
+ BOOST_CONCEPT_ASSERT((ReadablePropertyMapConcept<cWeightMap, Edge> ));
return 0;
}
Modified: branches/release/libs/graph/test/reverse_graph_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/reverse_graph_cc.cpp (original)
+++ branches/release/libs/graph/test/reverse_graph_cc.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -10,6 +10,7 @@
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/reverse_graph.hpp>
+#include <boost/concept/assert.hpp>
#include <string>
int main(int,char*[])
@@ -23,11 +24,13 @@
property<graph_name_t, std::string>
> AdjList;
typedef reverse_graph<AdjList> Graph;
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< ReadablePropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires< ReadablePropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph, Edge, edge_weight_t> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_t> ));
+ function_requires< ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_t> >();
AdjList g;
Graph gr(g);
get_property(gr, graph_name_t());
@@ -40,11 +43,13 @@
property<graph_name_t, std::string>
> AdjList;
typedef reverse_graph<AdjList,AdjList&> Graph;
- function_requires< VertexListGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< PropertyGraphConcept<Graph, Vertex, vertex_color_t> >();
- function_requires< PropertyGraphConcept<Graph, Edge, edge_weight_t> >();
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Vertex, vertex_color_t> ));
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Edge, edge_weight_t> ));
+ BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_t> ));
+ function_requires< ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_t> >();
AdjList g;
Graph gr(g);
get_property(gr, graph_name_t());
Modified: branches/release/libs/graph/test/stanford_graph_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/stanford_graph_cc.cpp (original)
+++ branches/release/libs/graph/test/stanford_graph_cc.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -9,6 +9,7 @@
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_archetypes.hpp>
#include <boost/graph/stanford_graph.hpp>
+#include <boost/concept/assert.hpp>
int main(int,char*[])
{
@@ -18,28 +19,28 @@
typedef Graph* Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires< PropertyGraphConcept<Graph, Edge, edge_length_t > >();
- function_requires<
- PropertyGraphConcept<Graph, Vertex, u_property<Vertex> > >();
- function_requires<
- PropertyGraphConcept<Graph, Edge, a_property<Vertex> > >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( PropertyGraphConcept<Graph, Edge, edge_length_t > ));
+ BOOST_CONCEPT_ASSERT((
+ PropertyGraphConcept<Graph, Vertex, u_property<Vertex> > ));
+ BOOST_CONCEPT_ASSERT((
+ PropertyGraphConcept<Graph, Edge, a_property<Vertex> > ));
}
{
typedef const Graph* Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef graph_traits<Graph>::edge_descriptor Edge;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Edge, edge_length_t > >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Vertex, u_property<Vertex> > >();
- function_requires<
- ReadablePropertyGraphConcept<Graph, Edge, a_property<Vertex> > >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Edge, edge_length_t > ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Vertex, u_property<Vertex> > ));
+ BOOST_CONCEPT_ASSERT((
+ ReadablePropertyGraphConcept<Graph, Edge, a_property<Vertex> > ));
}
return 0;
}
Modified: branches/release/libs/graph/test/test_construction.hpp
==============================================================================
--- branches/release/libs/graph/test/test_construction.hpp (original)
+++ branches/release/libs/graph/test/test_construction.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -7,6 +7,7 @@
#ifndef TEST_CONSTRUCTION_HPP
#define TEST_CONSTRUCTION_HPP
+#include <boost/concept/assert.hpp>
#include <utility>
/** @name Build Graph
Modified: branches/release/libs/graph/test/test_destruction.hpp
==============================================================================
--- branches/release/libs/graph/test/test_destruction.hpp (original)
+++ branches/release/libs/graph/test/test_destruction.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -7,6 +7,7 @@
#ifndef TEST_DESTRUCTION_HPP
#define TEST_DESTRUCTION_HPP
+#include <boost/concept/assert.hpp>
#include <utility>
/** @name Destroy Graph
@@ -36,7 +37,7 @@
void destroy_graph(Graph& g, VertexSet const&, boost::mpl::false_, boost::mpl::true_) {
using namespace boost;
BOOST_CONCEPT_ASSERT((VertexListGraphConcept<Graph>));
- // function_requires< VeretexMutableGraphConcept<Graph> >();
+ // BOOST_CONCEPT_ASSERT(( VeretexMutableGraphConcept<Graph> ));
std::cout << "...destroy_labeled\n";
// Remove the roof vertex
Modified: branches/release/libs/graph/test/test_direction.hpp
==============================================================================
--- branches/release/libs/graph/test/test_direction.hpp (original)
+++ branches/release/libs/graph/test/test_direction.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -9,6 +9,7 @@
#include <algorithm>
#include <boost/range.hpp>
+#include <boost/concept/assert.hpp>
/** @name Test Out-Directed Graph
* Test all graphs that have directed out edges.
Modified: branches/release/libs/graph/test/test_graph.hpp
==============================================================================
--- branches/release/libs/graph/test/test_graph.hpp (original)
+++ branches/release/libs/graph/test/test_graph.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -20,6 +20,7 @@
#include <utility>
#include <vector>
#include <boost/assert.hpp>
+#include <boost/concept/assert.hpp>
#include <boost/graph/graph_concepts.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/graph_mutability_traits.hpp>
Modified: branches/release/libs/graph/test/test_iteration.hpp
==============================================================================
--- branches/release/libs/graph/test/test_iteration.hpp (original)
+++ branches/release/libs/graph/test/test_iteration.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -7,6 +7,7 @@
#ifndef TEST_ITERATION_HPP
#define TEST_ITERATION_HPP
+#include <boost/concept/assert.hpp>
#include <algorithm>
/** @name Test Vertex List
Modified: branches/release/libs/graph/test/test_properties.hpp
==============================================================================
--- branches/release/libs/graph/test/test_properties.hpp (original)
+++ branches/release/libs/graph/test/test_properties.hpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -7,6 +7,8 @@
#ifndef TEST_PROPERTIES_HPP
#define TEST_PROPERTIES_HPP
+#include <boost/concept/assert.hpp>
+
template<typename T> T const& as_const(T& x) { return x; }
template<typename T> void ignore(T const&) { }
Modified: branches/release/libs/graph/test/vector_graph_cc.cpp
==============================================================================
--- branches/release/libs/graph/test/vector_graph_cc.cpp (original)
+++ branches/release/libs/graph/test/vector_graph_cc.cpp 2012-01-15 18:32:09 EST (Sun, 15 Jan 2012)
@@ -7,6 +7,7 @@
// http://www.boost.org/LICENSE_1_0.txt)
//=======================================================================
#include <boost/config.hpp>
+#include <boost/concept/assert.hpp>
#include <vector>
#include <list>
@@ -24,9 +25,9 @@
// Check "vector as graph"
{
typedef std::vector< std::list<int> > Graph;
- function_requires< VertexListGraphConcept<Graph> >();
- function_requires< IncidenceGraphConcept<Graph> >();
- function_requires< AdjacencyGraphConcept<Graph> >();
+ BOOST_CONCEPT_ASSERT(( VertexListGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept<Graph> ));
+ BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept<Graph> ));
}
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