|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r76050 - in trunk: boost/graph boost/graph/detail boost/graph/distributed libs/concept_check libs/graph/doc libs/graph/example libs/graph/test
From: jewillco_at_[hidden]
Date: 2011-12-18 16:09:41
Author: jewillco
Date: 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
New Revision: 76050
URL: http://svn.boost.org/trac/boost/changeset/76050
Log:
Applied fixed version of patch from #6293; fixes #6293
Text files modified:
trunk/boost/graph/astar_search.hpp | 6
trunk/boost/graph/bellman_ford_shortest_paths.hpp | 11
trunk/boost/graph/biconnected_components.hpp | 17 +-
trunk/boost/graph/boykov_kolmogorov_max_flow.hpp | 21 +-
trunk/boost/graph/breadth_first_search.hpp | 9
trunk/boost/graph/bron_kerbosch_all_cliques.hpp | 18 +-
trunk/boost/graph/closeness_centrality.hpp | 33 ++--
trunk/boost/graph/clustering_coefficient.hpp | 21 +-
trunk/boost/graph/connected_components.hpp | 5
trunk/boost/graph/core_numbers.hpp | 3
trunk/boost/graph/degree_centrality.hpp | 11
trunk/boost/graph/depth_first_search.hpp | 21 +-
trunk/boost/graph/detail/geodesic.hpp | 9
trunk/boost/graph/dijkstra_shortest_paths.hpp | 3
trunk/boost/graph/distributed/concepts.hpp | 23 +-
trunk/boost/graph/distributed/hohberg_biconnected_components.hpp | 3
trunk/boost/graph/dominator_tree.hpp | 7
trunk/boost/graph/eccentricity.hpp | 19 +-
trunk/boost/graph/floyd_warshall_shortest.hpp | 9
trunk/boost/graph/geodesic_distance.hpp | 35 ++--
trunk/boost/graph/graph_concepts.hpp | 5
trunk/boost/graph/howard_cycle_ratio.hpp | 11
trunk/boost/graph/isomorphism.hpp | 23 +-
trunk/boost/graph/johnson_all_pairs_shortest.hpp | 5
trunk/boost/graph/kruskal_min_spanning_tree.hpp | 19 +-
trunk/boost/graph/neighbor_bfs.hpp | 11
trunk/boost/graph/strong_components.hpp | 11
trunk/boost/graph/tiernan_all_cycles.hpp | 17 +-
trunk/boost/graph/transitive_closure.hpp | 21 +-
trunk/boost/graph/undirected_dfs.hpp | 29 ++-
trunk/libs/concept_check/reference.htm | 6
trunk/libs/graph/doc/AStarHeuristic.html | 2
trunk/libs/graph/doc/AdjacencyGraph.html | 4
trunk/libs/graph/doc/BidirectionalGraph.html | 4
trunk/libs/graph/doc/EdgeListGraph.html | 4
trunk/libs/graph/doc/Graph.html | 12
trunk/libs/graph/doc/IncidenceGraph.html | 4
trunk/libs/graph/doc/KeyedUpdatableQueue.html | 4
trunk/libs/graph/doc/MutableGraph.html | 6
trunk/libs/graph/doc/MutablePropertyGraph.html | 2
trunk/libs/graph/doc/PropertyGraph.html | 6
trunk/libs/graph/doc/UpdatableQueue.html | 2
trunk/libs/graph/doc/VertexAndEdgeListGraph.html | 4
trunk/libs/graph/doc/VertexListGraph.html | 6
trunk/libs/graph/doc/biconnected_components.w | 11
trunk/libs/graph/doc/constructing_algorithms.html | 10
trunk/libs/graph/doc/isomorphism-impl-v2.w | 22 +-
trunk/libs/graph/doc/isomorphism-impl-v3.w | 22 +-
trunk/libs/graph/doc/isomorphism-impl.w | 14
trunk/libs/graph/doc/leda_conversion.html | 6
trunk/libs/graph/doc/transitive_closure.w | 19 +-
trunk/libs/graph/example/implicit_graph.cpp | 20 +-
trunk/libs/graph/example/leda-concept-check.cpp | 11
trunk/libs/graph/example/loops_dfs.cpp | 5
trunk/libs/graph/example/put-get-helper-eg.cpp | 3
trunk/libs/graph/test/adj_list_cc.cpp | 297 ++++++++++++++++++++-------------------
trunk/libs/graph/test/adj_matrix_cc.cpp | 69 ++++----
trunk/libs/graph/test/edge_list_cc.cpp | 7
trunk/libs/graph/test/filtered_graph_cc.cpp | 15 +
trunk/libs/graph/test/graph_concepts.cpp | 11
trunk/libs/graph/test/grid_graph_cc.cpp | 17 +-
trunk/libs/graph/test/leda_graph_cc.cpp | 32 ++--
trunk/libs/graph/test/read_propmap.cpp | 5
trunk/libs/graph/test/reverse_graph_cc.cpp | 17 +-
trunk/libs/graph/test/stanford_graph_cc.cpp | 35 ++--
trunk/libs/graph/test/test_construction.hpp | 1
trunk/libs/graph/test/test_destruction.hpp | 3
trunk/libs/graph/test/test_direction.hpp | 1
trunk/libs/graph/test/test_graph.hpp | 1
trunk/libs/graph/test/test_iteration.hpp | 1
trunk/libs/graph/test/test_properties.hpp | 2
trunk/libs/graph/test/vector_graph_cc.cpp | 7
72 files changed, 612 insertions(+), 554 deletions(-)
Modified: trunk/boost/graph/astar_search.hpp
==============================================================================
--- trunk/boost/graph/astar_search.hpp (original)
+++ trunk/boost/graph/astar_search.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/bellman_ford_shortest_paths.hpp
==============================================================================
--- trunk/boost/graph/bellman_ford_shortest_paths.hpp (original)
+++ trunk/boost/graph/bellman_ford_shortest_paths.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/biconnected_components.hpp
==============================================================================
--- trunk/boost/graph/biconnected_components.hpp (original)
+++ trunk/boost/graph/biconnected_components.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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
{
@@ -157,14 +158,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: trunk/boost/graph/boykov_kolmogorov_max_flow.hpp
==============================================================================
--- trunk/boost/graph/boykov_kolmogorov_max_flow.hpp (original)
+++ trunk/boost/graph/boykov_kolmogorov_max_flow.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/breadth_first_search.hpp
==============================================================================
--- trunk/boost/graph/breadth_first_search.hpp (original)
+++ trunk/boost/graph/breadth_first_search.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/bron_kerbosch_all_cliques.hpp
==============================================================================
--- trunk/boost/graph/bron_kerbosch_all_cliques.hpp (original)
+++ trunk/boost/graph/bron_kerbosch_all_cliques.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/closeness_centrality.hpp
==============================================================================
--- trunk/boost/graph/closeness_centrality.hpp (original)
+++ trunk/boost/graph/closeness_centrality.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/clustering_coefficient.hpp
==============================================================================
--- trunk/boost/graph/clustering_coefficient.hpp (original)
+++ trunk/boost/graph/clustering_coefficient.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/connected_components.hpp
==============================================================================
--- trunk/boost/graph/connected_components.hpp (original)
+++ trunk/boost/graph/connected_components.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/core_numbers.hpp
==============================================================================
--- trunk/boost/graph/core_numbers.hpp (original)
+++ trunk/boost/graph/core_numbers.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/degree_centrality.hpp
==============================================================================
--- trunk/boost/graph/degree_centrality.hpp (original)
+++ trunk/boost/graph/degree_centrality.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/depth_first_search.hpp
==============================================================================
--- trunk/boost/graph/depth_first_search.hpp (original)
+++ trunk/boost/graph/depth_first_search.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/detail/geodesic.hpp
==============================================================================
--- trunk/boost/graph/detail/geodesic.hpp (original)
+++ trunk/boost/graph/detail/geodesic.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/dijkstra_shortest_paths.hpp
==============================================================================
--- trunk/boost/graph/dijkstra_shortest_paths.hpp (original)
+++ trunk/boost/graph/dijkstra_shortest_paths.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/distributed/concepts.hpp
==============================================================================
--- trunk/boost/graph/distributed/concepts.hpp (original)
+++ trunk/boost/graph/distributed/concepts.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/distributed/hohberg_biconnected_components.hpp
==============================================================================
--- trunk/boost/graph/distributed/hohberg_biconnected_components.hpp (original)
+++ trunk/boost/graph/distributed/hohberg_biconnected_components.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/dominator_tree.hpp
==============================================================================
--- trunk/boost/graph/dominator_tree.hpp (original)
+++ trunk/boost/graph/dominator_tree.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/eccentricity.hpp
==============================================================================
--- trunk/boost/graph/eccentricity.hpp (original)
+++ trunk/boost/graph/eccentricity.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/floyd_warshall_shortest.hpp
==============================================================================
--- trunk/boost/graph/floyd_warshall_shortest.hpp (original)
+++ trunk/boost/graph/floyd_warshall_shortest.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/geodesic_distance.hpp
==============================================================================
--- trunk/boost/graph/geodesic_distance.hpp (original)
+++ trunk/boost/graph/geodesic_distance.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/graph_concepts.hpp
==============================================================================
--- trunk/boost/graph/graph_concepts.hpp (original)
+++ trunk/boost/graph/graph_concepts.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/howard_cycle_ratio.hpp
==============================================================================
--- trunk/boost/graph/howard_cycle_ratio.hpp (original)
+++ trunk/boost/graph/howard_cycle_ratio.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/isomorphism.hpp
==============================================================================
--- trunk/boost/graph/isomorphism.hpp (original)
+++ trunk/boost/graph/isomorphism.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/johnson_all_pairs_shortest.hpp
==============================================================================
--- trunk/boost/graph/johnson_all_pairs_shortest.hpp (original)
+++ trunk/boost/graph/johnson_all_pairs_shortest.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/kruskal_min_spanning_tree.hpp
==============================================================================
--- trunk/boost/graph/kruskal_min_spanning_tree.hpp (original)
+++ trunk/boost/graph/kruskal_min_spanning_tree.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/neighbor_bfs.hpp
==============================================================================
--- trunk/boost/graph/neighbor_bfs.hpp (original)
+++ trunk/boost/graph/neighbor_bfs.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/strong_components.hpp
==============================================================================
--- trunk/boost/graph/strong_components.hpp (original)
+++ trunk/boost/graph/strong_components.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/tiernan_all_cycles.hpp
==============================================================================
--- trunk/boost/graph/tiernan_all_cycles.hpp (original)
+++ trunk/boost/graph/tiernan_all_cycles.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/transitive_closure.hpp
==============================================================================
--- trunk/boost/graph/transitive_closure.hpp (original)
+++ trunk/boost/graph/transitive_closure.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/boost/graph/undirected_dfs.hpp
==============================================================================
--- trunk/boost/graph/undirected_dfs.hpp (original)
+++ trunk/boost/graph/undirected_dfs.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/concept_check/reference.htm
==============================================================================
--- trunk/libs/concept_check/reference.htm (original)
+++ trunk/libs/concept_check/reference.htm 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/AStarHeuristic.html
==============================================================================
--- trunk/libs/graph/doc/AStarHeuristic.html (original)
+++ trunk/libs/graph/doc/AStarHeuristic.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -116,7 +116,7 @@
struct AStarHeuristicConcept {
void constraints()
{
- function_requires< CopyConstructibleConcept<Heuristic> >();
+ BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Heuristic> ));
h(u);
}
Heuristic h;
Modified: trunk/libs/graph/doc/AdjacencyGraph.html
==============================================================================
--- trunk/libs/graph/doc/AdjacencyGraph.html (original)
+++ trunk/libs/graph/doc/AdjacencyGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/BidirectionalGraph.html
==============================================================================
--- trunk/libs/graph/doc/BidirectionalGraph.html (original)
+++ trunk/libs/graph/doc/BidirectionalGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/EdgeListGraph.html
==============================================================================
--- trunk/libs/graph/doc/EdgeListGraph.html (original)
+++ trunk/libs/graph/doc/EdgeListGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/Graph.html
==============================================================================
--- trunk/libs/graph/doc/Graph.html (original)
+++ trunk/libs/graph/doc/Graph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/IncidenceGraph.html
==============================================================================
--- trunk/libs/graph/doc/IncidenceGraph.html (original)
+++ trunk/libs/graph/doc/IncidenceGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/KeyedUpdatableQueue.html
==============================================================================
--- trunk/libs/graph/doc/KeyedUpdatableQueue.html (original)
+++ trunk/libs/graph/doc/KeyedUpdatableQueue.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/MutableGraph.html
==============================================================================
--- trunk/libs/graph/doc/MutableGraph.html (original)
+++ trunk/libs/graph/doc/MutableGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/MutablePropertyGraph.html
==============================================================================
--- trunk/libs/graph/doc/MutablePropertyGraph.html (original)
+++ trunk/libs/graph/doc/MutablePropertyGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/PropertyGraph.html
==============================================================================
--- trunk/libs/graph/doc/PropertyGraph.html (original)
+++ trunk/libs/graph/doc/PropertyGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/UpdatableQueue.html
==============================================================================
--- trunk/libs/graph/doc/UpdatableQueue.html (original)
+++ trunk/libs/graph/doc/UpdatableQueue.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -58,7 +58,7 @@
struct UpdatableQueueConcept
{
void constraints() {
- function_requires< Buffer<Q> >();
+ BOOST_CONCEPT_ASSERT(( Buffer<Q> ));
q.update(g_ct);
}
Modified: trunk/libs/graph/doc/VertexAndEdgeListGraph.html
==============================================================================
--- trunk/libs/graph/doc/VertexAndEdgeListGraph.html (original)
+++ trunk/libs/graph/doc/VertexAndEdgeListGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/VertexListGraph.html
==============================================================================
--- trunk/libs/graph/doc/VertexListGraph.html (original)
+++ trunk/libs/graph/doc/VertexListGraph.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/biconnected_components.w
==============================================================================
--- trunk/libs/graph/doc/biconnected_components.w (original)
+++ trunk/libs/graph/doc/biconnected_components.w 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/constructing_algorithms.html
==============================================================================
--- trunk/libs/graph/doc/constructing_algorithms.html (original)
+++ trunk/libs/graph/doc/constructing_algorithms.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/isomorphism-impl-v2.w
==============================================================================
--- trunk/libs/graph/doc/isomorphism-impl-v2.w (original)
+++ trunk/libs/graph/doc/isomorphism-impl-v2.w 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/isomorphism-impl-v3.w
==============================================================================
--- trunk/libs/graph/doc/isomorphism-impl-v3.w (original)
+++ trunk/libs/graph/doc/isomorphism-impl-v3.w 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/isomorphism-impl.w
==============================================================================
--- trunk/libs/graph/doc/isomorphism-impl.w (original)
+++ trunk/libs/graph/doc/isomorphism-impl.w 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/leda_conversion.html
==============================================================================
--- trunk/libs/graph/doc/leda_conversion.html (original)
+++ trunk/libs/graph/doc/leda_conversion.html 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/doc/transitive_closure.w
==============================================================================
--- trunk/libs/graph/doc/transitive_closure.w (original)
+++ trunk/libs/graph/doc/transitive_closure.w 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/example/implicit_graph.cpp
==============================================================================
--- trunk/libs/graph/example/implicit_graph.cpp (original)
+++ trunk/libs/graph/example/implicit_graph.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/example/leda-concept-check.cpp
==============================================================================
--- trunk/libs/graph/example/leda-concept-check.cpp (original)
+++ trunk/libs/graph/example/leda-concept-check.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/example/loops_dfs.cpp
==============================================================================
--- trunk/libs/graph/example/loops_dfs.cpp (original)
+++ trunk/libs/graph/example/loops_dfs.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/example/put-get-helper-eg.cpp
==============================================================================
--- trunk/libs/graph/example/put-get-helper-eg.cpp (original)
+++ trunk/libs/graph/example/put-get-helper-eg.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/adj_list_cc.cpp
==============================================================================
--- trunk/libs/graph/test/adj_list_cc.cpp (original)
+++ trunk/libs/graph/test/adj_list_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/adj_matrix_cc.cpp
==============================================================================
--- trunk/libs/graph/test/adj_matrix_cc.cpp (original)
+++ trunk/libs/graph/test/adj_matrix_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/edge_list_cc.cpp
==============================================================================
--- trunk/libs/graph/test/edge_list_cc.cpp (original)
+++ trunk/libs/graph/test/edge_list_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/filtered_graph_cc.cpp
==============================================================================
--- trunk/libs/graph/test/filtered_graph_cc.cpp (original)
+++ trunk/libs/graph/test/filtered_graph_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/graph_concepts.cpp
==============================================================================
--- trunk/libs/graph/test/graph_concepts.cpp (original)
+++ trunk/libs/graph/test/graph_concepts.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/grid_graph_cc.cpp
==============================================================================
--- trunk/libs/graph/test/grid_graph_cc.cpp (original)
+++ trunk/libs/graph/test/grid_graph_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/leda_graph_cc.cpp
==============================================================================
--- trunk/libs/graph/test/leda_graph_cc.cpp (original)
+++ trunk/libs/graph/test/leda_graph_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/read_propmap.cpp
==============================================================================
--- trunk/libs/graph/test/read_propmap.cpp (original)
+++ trunk/libs/graph/test/read_propmap.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/reverse_graph_cc.cpp
==============================================================================
--- trunk/libs/graph/test/reverse_graph_cc.cpp (original)
+++ trunk/libs/graph/test/reverse_graph_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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,12 +24,12 @@
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> >();
- function_requires< ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_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> ));
AdjList g;
Graph gr(g);
get_property(gr, graph_name_t());
@@ -41,12 +42,12 @@
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> >();
- function_requires< ReadablePropertyGraphConcept<Graph, Edge, edge_underlying_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> ));
AdjList g;
Graph gr(g);
get_property(gr, graph_name_t());
Modified: trunk/libs/graph/test/stanford_graph_cc.cpp
==============================================================================
--- trunk/libs/graph/test/stanford_graph_cc.cpp (original)
+++ trunk/libs/graph/test/stanford_graph_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/test_construction.hpp
==============================================================================
--- trunk/libs/graph/test/test_construction.hpp (original)
+++ trunk/libs/graph/test/test_construction.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -7,6 +7,7 @@
#ifndef TEST_CONSTRUCTION_HPP
#define TEST_CONSTRUCTION_HPP
+#include <boost/concept/assert.hpp>
#include <utility>
/** @name Build Graph
Modified: trunk/libs/graph/test/test_destruction.hpp
==============================================================================
--- trunk/libs/graph/test/test_destruction.hpp (original)
+++ trunk/libs/graph/test/test_destruction.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/test_direction.hpp
==============================================================================
--- trunk/libs/graph/test/test_direction.hpp (original)
+++ trunk/libs/graph/test/test_direction.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/test_graph.hpp
==============================================================================
--- trunk/libs/graph/test/test_graph.hpp (original)
+++ trunk/libs/graph/test/test_graph.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/test_iteration.hpp
==============================================================================
--- trunk/libs/graph/test/test_iteration.hpp (original)
+++ trunk/libs/graph/test/test_iteration.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -7,6 +7,7 @@
#ifndef TEST_ITERATION_HPP
#define TEST_ITERATION_HPP
+#include <boost/concept/assert.hpp>
#include <algorithm>
/** @name Test Vertex List
Modified: trunk/libs/graph/test/test_properties.hpp
==============================================================================
--- trunk/libs/graph/test/test_properties.hpp (original)
+++ trunk/libs/graph/test/test_properties.hpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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: trunk/libs/graph/test/vector_graph_cc.cpp
==============================================================================
--- trunk/libs/graph/test/vector_graph_cc.cpp (original)
+++ trunk/libs/graph/test/vector_graph_cc.cpp 2011-12-18 16:09:34 EST (Sun, 18 Dec 2011)
@@ -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