Index: boost/graph/clustering_coefficient.hpp =================================================================== --- boost/graph/clustering_coefficient.hpp (Revision 76000) +++ boost/graph/clustering_coefficient.hpp (Arbeitskopie) @@ -11,6 +11,7 @@ #include #include #include +#include namespace boost { @@ -20,7 +21,7 @@ inline typename graph_traits::degree_size_type possible_edges(const Graph& g, std::size_t k, directed_tag) { - function_requires< GraphConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); typedef typename graph_traits::degree_size_type T; return T(k) * (T(k) - 1); } @@ -42,7 +43,7 @@ directed_tag) { - function_requires< AdjacencyMatrixConcept >(); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); return (lookup_edge(u, v, g).second ? 1 : 0) + (lookup_edge(v, u, g).second ? 1 : 0); } @@ -55,7 +56,7 @@ typename graph_traits::vertex_descriptor v, undirected_tag) { - function_requires< AdjacencyMatrixConcept >(); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); return lookup_edge(u, v, g).second ? 1 : 0; } } @@ -64,7 +65,7 @@ inline typename graph_traits::degree_size_type num_paths_through_vertex(const Graph& g, Vertex v) { - function_requires< AdjacencyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); typedef typename graph_traits::directed_category Directed; typedef typename graph_traits::adjacency_iterator AdjacencyIterator; @@ -81,8 +82,8 @@ inline typename graph_traits::degree_size_type num_triangles_on_vertex(const Graph& g, Vertex v) { - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); typedef typename graph_traits::degree_size_type Degree; typedef typename graph_traits::directed_category Directed; typedef typename graph_traits::adjacency_iterator AdjacencyIterator; @@ -119,10 +120,10 @@ inline typename property_traits::value_type all_clustering_coefficients(const Graph& g, ClusteringMap cm) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertex_iterator VertexIterator; - function_requires< WritablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); typedef typename property_traits::value_type Coefficient; Coefficient sum(0); @@ -139,10 +140,10 @@ inline typename property_traits::value_type mean_clustering_coefficient(const Graph& g, ClusteringMap cm) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertex_iterator VertexIterator; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type Coefficient; Coefficient cc(0); Index: boost/graph/bellman_ford_shortest_paths.hpp =================================================================== --- boost/graph/bellman_ford_shortest_paths.hpp (Revision 76000) +++ boost/graph/bellman_ford_shortest_paths.hpp (Arbeitskopie) @@ -29,13 +29,14 @@ #include #include #include +#include namespace boost { template struct BellmanFordVisitorConcept { void constraints() { - function_requires< CopyConstructibleConcept >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept )); 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 >(); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); typedef graph_traits GTraits; typedef typename GTraits::edge_descriptor Edge; typedef typename GTraits::vertex_descriptor Vertex; - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type D_value; typedef typename property_traits::value_type W_value; @@ -229,7 +230,7 @@ (VertexAndEdgeListGraph& g, const bgl_named_params& params) { - function_requires >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); return detail::bellman_dispatch (g, num_vertices(g), choose_const_pmap(get_param(params, edge_weight), g, edge_weight), Index: boost/graph/bron_kerbosch_all_cliques.hpp =================================================================== --- boost/graph/bron_kerbosch_all_cliques.hpp (Revision 76000) +++ boost/graph/bron_kerbosch_all_cliques.hpp (Arbeitskopie) @@ -11,6 +11,8 @@ #include #include +#include + #include #include @@ -151,7 +153,7 @@ const Container& in, Container& out) { - function_requires< GraphConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); typename graph_traits::directed_category cat; typename Container::const_iterator i, end = in.end(); @@ -174,8 +176,8 @@ Visitor vis, std::size_t min) { - function_requires< GraphConcept >(); - function_requires< CliqueVisitorConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); + BOOST_CONCEPT_ASSERT(( CliqueVisitorConcept )); typedef typename graph_traits::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 >(); - function_requires< VertexListGraphConcept >(); - function_requires< VertexIndexGraphConcept >(); - function_requires< AdjacencyMatrixConcept >(); // Structural requirement only + BOOST_CONCEPT_ASSERT< IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT< VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT< VertexIndexGraphConcept )); + BOOST_CONCEPT_ASSERT< AdjacencyMatrixConcept )); // Structural requirement only typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertex_iterator VertexIterator; typedef std::vector VertexSet; typedef std::deque Clique; - function_requires< CliqueVisitorConcept >(); + BOOST_CONCEPT_ASSERT< CliqueVisitorConcept )); // 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. Index: boost/graph/undirected_dfs.hpp =================================================================== --- boost/graph/undirected_dfs.hpp (Revision 76000) +++ boost/graph/undirected_dfs.hpp (Arbeitskopie) @@ -13,6 +13,7 @@ #include #include +#include namespace boost { @@ -32,16 +33,16 @@ VertexColorMap vertex_color, EdgeColorMap edge_color) { - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( DFSVisitorConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::edge_descriptor Edge; - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type ColorValue; typedef typename property_traits::value_type EColorValue; - function_requires< ColorValueConcept >(); - function_requires< ColorValueConcept >(); + BOOST_CONCEPT_ASSERT(( ColorValueConcept )); + BOOST_CONCEPT_ASSERT(( ColorValueConcept )); typedef color_traits Color; typedef color_traits EColor; typedef typename graph_traits::out_edge_iterator Iter; @@ -94,16 +95,16 @@ VertexColorMap vertex_color, EdgeColorMap edge_color) { - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( DFSVisitorConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::edge_descriptor Edge; - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type ColorValue; typedef typename property_traits::value_type EColorValue; - function_requires< ColorValueConcept >(); - function_requires< ColorValueConcept >(); + BOOST_CONCEPT_ASSERT(( ColorValueConcept )); + BOOST_CONCEPT_ASSERT(( ColorValueConcept )); typedef color_traits Color; typedef color_traits EColor; typename graph_traits::out_edge_iterator ei, ei_end; @@ -134,8 +135,8 @@ VertexColorMap vertex_color, EdgeColorMap edge_color, Vertex start_vertex) { - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( DFSVisitorConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); typedef typename property_traits::value_type ColorValue; typedef color_traits Color; Index: boost/graph/boykov_kolmogorov_max_flow.hpp =================================================================== --- boost/graph/boykov_kolmogorov_max_flow.hpp (Revision 76000) +++ boost/graph/boykov_kolmogorov_max_flow.hpp (Arbeitskopie) @@ -47,6 +47,7 @@ #include #include #include +#include // The algorithm impelemented here is described in: // @@ -743,16 +744,16 @@ typedef typename graph_traits::edge_descriptor edge_descriptor; //as this method is the last one before we instantiate the solver, we do the concept checks here - function_requires >(); //to have vertices(), num_vertices(), - function_requires >(); //to have edges() - function_requires >(); //to have source(), target() and out_edges() - function_requires >(); //read flow-values from edges - function_requires >(); //write flow-values to residuals - function_requires >(); //read out reverse edges - function_requires >(); //store predecessor there - function_requires >(); //write corresponding tree - function_requires >(); //write distance to source/sink - function_requires >(); //get index 0...|V|-1 + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); //to have vertices(), num_vertices(), + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); //to have edges() + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); //to have source(), target() and out_edges() + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); //read flow-values from edges + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); //write flow-values to residuals + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); //read out reverse edges + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); //store predecessor there + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); //write corresponding tree + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); //write distance to source/sink + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); //get index 0...|V|-1 BOOST_ASSERT(num_vertices(g) >= 2 && src != sink); detail::bk_max_flow< Index: boost/graph/tiernan_all_cycles.hpp =================================================================== --- boost/graph/tiernan_all_cycles.hpp (Revision 76000) +++ boost/graph/tiernan_all_cycles.hpp (Arbeitskopie) @@ -13,6 +13,7 @@ #include #include #include +#include #include namespace boost { @@ -156,8 +157,8 @@ const Path& p, const ClosedMatrix& m) { - function_requires< IncidenceGraphConcept >(); - function_requires< VertexIndexGraphConcept >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexIndexGraphConcept )); typedef typename graph_traits::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 >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::out_edge_iterator OutIterator; @@ -209,7 +210,7 @@ Path& p, ClosedMatrix& closed) { - function_requires< IncidenceGraphConcept >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::edge_descriptor Edge; typedef typename graph_traits::out_edge_iterator OutIterator; @@ -238,7 +239,7 @@ inline bool exhaust_paths(const Graph& g, Path& p, ClosedMatrix& closed) { - function_requires< GraphConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); typedef typename graph_traits::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 >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef std::vector Path; - function_requires< CycleVisitorConcept >(); + BOOST_CONCEPT_ASSERT(( CycleVisitorConcept )); typedef std::vector VertexList; typedef std::vector ClosedMatrix; @@ -320,7 +321,7 @@ std::size_t minlen, std::size_t maxlen) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_iterator VertexIterator; VertexIterator i, end; Index: boost/graph/detail/geodesic.hpp =================================================================== --- boost/graph/detail/geodesic.hpp (Revision 76000) +++ boost/graph/detail/geodesic.hpp (Arbeitskopie) @@ -11,6 +11,7 @@ #include #include #include +#include // TODO: Should this really be in detail? @@ -51,13 +52,13 @@ Combinator combine, Distance init) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertex_iterator VertexIterator; - function_requires< ReadablePropertyMapConcept >(); - function_requires< NumericValueConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( NumericValueConcept )); typedef numeric_values DistanceNumbers; - function_requires< AdaptableBinaryFunction >(); + BOOST_CONCEPT_ASSERT(( AdaptableBinaryFunction )); // If there's ever an infinite distance, then we simply return // infinity. Note that this /will/ include the a non-zero Index: boost/graph/core_numbers.hpp =================================================================== --- boost/graph/core_numbers.hpp (Revision 76000) +++ boost/graph/core_numbers.hpp (Arbeitskopie) @@ -15,6 +15,7 @@ #include #include #include +#include /* * core_numbers @@ -46,7 +47,7 @@ struct CoreNumbersVisitorConcept { void constraints() { - function_requires< CopyConstructibleConcept >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept )); vis.examine_vertex(u,g); vis.finish_vertex(u,g); vis.examine_edge(e,g); Index: boost/graph/degree_centrality.hpp =================================================================== --- boost/graph/degree_centrality.hpp (Revision 76000) +++ boost/graph/degree_centrality.hpp (Arbeitskopie) @@ -8,6 +8,7 @@ #define BOOST_GRAPH_DEGREE_CENTRALITY_HPP #include +#include namespace boost { @@ -28,7 +29,7 @@ inline degree_type operator ()(vertex_type v, const Graph& g) { - function_requires< IncidenceGraphConcept >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); return out_degree(v, g); } }; @@ -49,7 +50,7 @@ inline degree_type operator ()(vertex_type v, const Graph& g) { - function_requires< BidirectionalGraphConcept >(); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); 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 >(); + BOOST_CONCEPT_ASSERT(( DegreeMeasureConcept )); return measure(v, g); } @@ -94,10 +95,10 @@ inline void all_degree_centralities(const Graph& g, CentralityMap cent, Measure measure) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertex_iterator VertexIterator; - function_requires< WritablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); typedef typename property_traits::value_type Centrality; VertexIterator i, end; Index: boost/graph/kruskal_min_spanning_tree.hpp =================================================================== --- boost/graph/kruskal_min_spanning_tree.hpp (Revision 76000) +++ boost/graph/kruskal_min_spanning_tree.hpp (Arbeitskopie) @@ -28,6 +28,7 @@ #include #include #include +#include namespace boost { @@ -51,18 +52,18 @@ if (num_vertices(G) == 0) return; // Nothing to do in this case typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::edge_descriptor Edge; - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( OutputIteratorConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type W_value; typedef typename property_traits::value_type R_value; typedef typename property_traits::value_type P_value; - function_requires >(); - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( ComparableConcept )); + BOOST_CONCEPT_ASSERT(( ConvertibleConcept )); + BOOST_CONCEPT_ASSERT(( IntegerConcept )); disjoint_sets dset(rank, parent); Index: boost/graph/dijkstra_shortest_paths.hpp =================================================================== --- boost/graph/dijkstra_shortest_paths.hpp (Revision 76000) +++ boost/graph/dijkstra_shortest_paths.hpp (Arbeitskopie) @@ -30,6 +30,7 @@ #include #include #include +#include #ifdef BOOST_GRAPH_DIJKSTRA_TESTING # include @@ -68,7 +69,7 @@ template struct DijkstraVisitorConcept { void constraints() { - function_requires< CopyConstructibleConcept >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept )); vis.initialize_vertex(u, g); vis.discover_vertex(u, g); vis.examine_vertex(u, g); Index: boost/graph/floyd_warshall_shortest.hpp =================================================================== --- boost/graph/floyd_warshall_shortest.hpp (Revision 76000) +++ boost/graph/floyd_warshall_shortest.hpp (Arbeitskopie) @@ -34,6 +34,7 @@ #include #include #include +#include namespace boost { @@ -84,7 +85,7 @@ const BinaryFunction& combine, const Infinity& inf, const Zero& zero) { - function_requires >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); 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 >(); - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); typename graph_traits::vertex_iterator firstv, lastv, firstv2, lastv2; Index: boost/graph/johnson_all_pairs_shortest.hpp =================================================================== --- boost/graph/johnson_all_pairs_shortest.hpp (Revision 76000) +++ boost/graph/johnson_all_pairs_shortest.hpp (Arbeitskopie) @@ -29,6 +29,7 @@ #include #include #include +#include namespace boost { @@ -44,8 +45,8 @@ { typedef graph_traits Traits1; typedef typename property_traits::value_type DT; - function_requires< BasicMatrixConcept >(); + BOOST_CONCEPT_ASSERT(( BasicMatrixConcept )); typedef typename Traits1::directed_category DirCat; bool is_undirected = is_same::value; Index: boost/graph/connected_components.hpp =================================================================== --- boost/graph/connected_components.hpp (Revision 76000) +++ boost/graph/connected_components.hpp (Arbeitskopie) @@ -17,6 +17,7 @@ #include #include #include +#include namespace boost { @@ -64,7 +65,7 @@ if (num_vertices(g) == 0) return 0; typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< WritablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); typedef typename boost::graph_traits::directed_category directed; BOOST_STATIC_ASSERT((boost::is_same::value)); @@ -84,7 +85,7 @@ if (num_vertices(g) == 0) return 0; typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< WritablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); typedef typename boost::graph_traits::directed_category directed; // BOOST_STATIC_ASSERT((boost::is_same::value)); Index: boost/graph/isomorphism.hpp =================================================================== --- boost/graph/isomorphism.hpp (Revision 76000) +++ boost/graph/isomorphism.hpp (Arbeitskopie) @@ -15,6 +15,7 @@ #include #include #include // for make_indirect_pmap +#include #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 >(); - function_requires< EdgeListGraphConcept >(); - function_requires< VertexListGraphConcept >(); - function_requires< BidirectionalGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); typedef typename graph_traits::vertex_descriptor vertex1_t; typedef typename graph_traits::vertex_descriptor vertex2_t; typedef typename graph_traits::vertices_size_type size_type; // Vertex invariant requirement - function_requires< AdaptableUnaryFunctionConcept >(); - function_requires< AdaptableUnaryFunctionConcept >(); + BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept )); + BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept )); // Property map requirements - function_requires< ReadWritePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type IsoMappingValue; BOOST_STATIC_ASSERT((is_same::value)); - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type IndexMap1Value; BOOST_STATIC_ASSERT((is_convertible::value)); - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type IndexMap2Value; BOOST_STATIC_ASSERT((is_convertible::value)); Index: boost/graph/dominator_tree.hpp =================================================================== --- boost/graph/dominator_tree.hpp (Revision 76000) +++ boost/graph/dominator_tree.hpp (Arbeitskopie) @@ -13,6 +13,7 @@ #include #include #include +#include // Dominator tree computation @@ -244,7 +245,7 @@ typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertices_size_type VerticesSizeType; - function_requires< BidirectionalGraphConcept >(); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); const VerticesSizeType numOfVertices = num_vertices(g); if (numOfVertices == 0) return; @@ -299,7 +300,7 @@ // Typedefs and concept check typedef typename graph_traits::vertices_size_type VerticesSizeType; - function_requires< BidirectionalGraphConcept >(); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); // 1. Depth first visit const VerticesSizeType numOfVertices = num_vertices(g); @@ -388,7 +389,7 @@ iterator_property_map >::iterator, IndexMap> vertexSetMap; - function_requires >(); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); // 1. Finding dominator // 1.1. Initialize Index: boost/graph/biconnected_components.hpp =================================================================== --- boost/graph/biconnected_components.hpp (Revision 76000) +++ boost/graph/biconnected_components.hpp (Arbeitskopie) @@ -20,6 +20,7 @@ #include #include #include +#include namespace boost { @@ -157,14 +158,14 @@ { typedef typename graph_traits::vertex_descriptor vertex_t; typedef typename graph_traits::edge_descriptor edge_t; - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); std::size_t num_components = 0; std::size_t dfs_time = 0; Index: boost/graph/transitive_closure.hpp =================================================================== --- boost/graph/transitive_closure.hpp (Revision 76000) +++ boost/graph/transitive_closure.hpp (Arbeitskopie) @@ -19,6 +19,7 @@ #include #include #include +#include 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) Index: boost/graph/eccentricity.hpp =================================================================== --- boost/graph/eccentricity.hpp (Revision 76000) +++ boost/graph/eccentricity.hpp (Arbeitskopie) @@ -10,6 +10,7 @@ #include #include #include +#include namespace boost { @@ -19,9 +20,9 @@ inline typename property_traits::value_type eccentricity(const Graph& g, DistanceMap dist, Combinator combine) { - function_requires< GraphConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type Distance; return detail::combine_distances(g, dist, combine, Distance(0)); @@ -31,9 +32,9 @@ inline typename property_traits::value_type eccentricity(const Graph& g, DistanceMap dist) { - function_requires< GraphConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type Distance; return eccentricity(g, dist, detail::maximize()); @@ -44,12 +45,12 @@ typename property_traits::value_type> all_eccentricities(const Graph& g, const DistanceMatrix& dist, EccentricityMap ecc) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertex_iterator VertexIterator; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type DistanceMap; - function_requires< WritablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); typedef typename property_traits::value_type Eccentricity; BOOST_USING_STD_MIN(); BOOST_USING_STD_MAX(); @@ -76,10 +77,10 @@ typename property_traits::value_type> radius_and_diameter(const Graph& g, EccentricityMap ecc) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertex_iterator VertexIterator; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type Eccentricity; BOOST_USING_STD_MIN(); BOOST_USING_STD_MAX(); Index: boost/graph/closeness_centrality.hpp =================================================================== --- boost/graph/closeness_centrality.hpp (Revision 76000) +++ boost/graph/closeness_centrality.hpp (Arbeitskopie) @@ -9,6 +9,7 @@ #include #include +#include namespace boost { @@ -25,9 +26,9 @@ result_type operator ()(distance_type d, const Graph&) { - function_requires< NumericValueConcept >(); - function_requires< NumericValueConcept >(); - function_requires< AdaptableUnaryFunctionConcept >(); + BOOST_CONCEPT_ASSERT(( NumericValueConcept )); + BOOST_CONCEPT_ASSERT(( NumericValueConcept )); + BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept )); 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 >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type Distance; - function_requires< NumericValueConcept >(); - function_requires< DistanceMeasureConcept >(); + BOOST_CONCEPT_ASSERT(( NumericValueConcept )); + BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept )); 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 >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type Distance; return closeness_centrality(g, dist, measure, std::plus()); @@ -116,12 +117,12 @@ CentralityMap cent, Measure measure) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type DistanceMap; - function_requires< ReadablePropertyMapConcept >(); - function_requires< WritablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); typedef typename property_traits::value_type Distance; typedef typename property_traits::value_type Centrality; @@ -141,11 +142,11 @@ DistanceMatrixMap dist, CentralityMap cent) { - function_requires< GraphConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type DistanceMap; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type Distance; typedef typename property_traits::value_type Result; Index: boost/graph/strong_components.hpp =================================================================== --- boost/graph/strong_components.hpp (Revision 76000) +++ boost/graph/strong_components.hpp (Arbeitskopie) @@ -18,6 +18,7 @@ #include #include #include +#include namespace boost { @@ -93,11 +94,11 @@ const bgl_named_params& params) { typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadWritePropertyMapConcept >(); - function_requires< ReadWritePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type RootV; - function_requires< ConvertibleConcept >(); - function_requires< ReadWritePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ConvertibleConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typename property_traits::value_type total = 0; @@ -282,7 +283,7 @@ kosaraju_strong_components(Graph& G, ComponentsMap c, FinishTime finish_time, ColorMap color) { - function_requires< MutableGraphConcept >(); + BOOST_CONCEPT_ASSERT(( MutableGraphConcept )); // ... typedef typename graph_traits::vertex_descriptor Vertex; Index: boost/graph/graph_concepts.hpp =================================================================== --- boost/graph/graph_concepts.hpp (Revision 76000) +++ boost/graph/graph_concepts.hpp (Arbeitskopie) @@ -21,6 +21,7 @@ #include #include #include +#include #include namespace boost @@ -529,8 +530,8 @@ { BOOST_CONCEPT_USAGE(NumericValue) { - function_requires< DefaultConstructible >(); - function_requires< CopyConstructible >(); + BOOST_CONCEPT_ASSERT(( DefaultConstructible )); + BOOST_CONCEPT_ASSERT(( CopyConstructible )); numeric_values::zero(); numeric_values::infinity(); } Index: boost/graph/depth_first_search.hpp =================================================================== --- boost/graph/depth_first_search.hpp (Revision 76000) +++ boost/graph/depth_first_search.hpp (Arbeitskopie) @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -31,7 +32,7 @@ class DFSVisitorConcept { public: void constraints() { - function_requires< CopyConstructibleConcept >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept )); 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 >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( DFSVisitorConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadWritePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type ColorValue; - function_requires< ColorValueConcept >(); + BOOST_CONCEPT_ASSERT(( ColorValueConcept )); typedef color_traits Color; typedef typename graph_traits::out_edge_iterator Iter; typedef std::pair > VertexInfo; @@ -151,12 +152,12 @@ DFSVisitor& vis, // pass-by-reference here, important! ColorMap color, TerminatorFunc func) { - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( DFSVisitorConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadWritePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type ColorValue; - function_requires< ColorValueConcept >(); + BOOST_CONCEPT_ASSERT(( ColorValueConcept )); typedef color_traits Color; typename graph_traits::out_edge_iterator ei, ei_end; @@ -187,7 +188,7 @@ typename graph_traits::vertex_descriptor start_vertex) { typedef typename graph_traits::vertex_descriptor Vertex; - function_requires >(); + BOOST_CONCEPT_ASSERT(( DFSVisitorConcept )); typedef typename property_traits::value_type ColorValue; typedef color_traits Color; Index: boost/graph/distributed/concepts.hpp =================================================================== --- boost/graph/distributed/concepts.hpp (Revision 76000) +++ boost/graph/distributed/concepts.hpp (Arbeitskopie) @@ -21,6 +21,7 @@ #include #include #include +#include #if BOOST_VERSION >= 103500 # include @@ -46,10 +47,10 @@ typedef typename graph_traits::traversal_category traversal_category; void constraints() { - function_requires< GraphConcept >(); - function_requires< MultiPassInputIteratorConcept >(); - function_requires< ConvertibleConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); + BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept )); + BOOST_CONCEPT_ASSERT(( ConvertibleConcept )); #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::traversal_category traversal_category; void constraints() { - function_requires< GraphConcept >(); - function_requires< MultiPassInputIteratorConcept >(); - function_requires< DefaultConstructibleConcept >(); - function_requires< EqualityComparableConcept >(); - function_requires< AssignableConcept >(); - function_requires< ConvertibleConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); + BOOST_CONCEPT_ASSERT(( MultiPassInputIteratorConcept )); + BOOST_CONCEPT_ASSERT(( DefaultConstructibleConcept )); + BOOST_CONCEPT_ASSERT(( EqualityComparableConcept )); + BOOST_CONCEPT_ASSERT(( AssignableConcept )); + BOOST_CONCEPT_ASSERT(( ConvertibleConcept )); p = edges(g); e = *p.first; Index: boost/graph/distributed/hohberg_biconnected_components.hpp =================================================================== --- boost/graph/distributed/hohberg_biconnected_components.hpp (Revision 76000) +++ boost/graph/distributed/hohberg_biconnected_components.hpp (Arbeitskopie) @@ -44,6 +44,7 @@ #include #include #include +#include namespace boost { namespace graph { namespace distributed { @@ -908,7 +909,7 @@ undirected_tag>::value)); // The graph must model Incidence Graph - function_requires< IncidenceGraphConcept >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); typedef typename graph_traits::edges_size_type edges_size_type; typedef typename graph_traits::degree_size_type degree_size_type; Index: boost/graph/geodesic_distance.hpp =================================================================== --- boost/graph/geodesic_distance.hpp (Revision 76000) +++ boost/graph/geodesic_distance.hpp (Arbeitskopie) @@ -9,6 +9,7 @@ #include #include +#include namespace boost { @@ -25,10 +26,10 @@ result_type operator ()(distance_type d, const Graph& g) { - function_requires< VertexListGraphConcept >(); - function_requires< NumericValueConcept >(); - function_requires< NumericValueConcept >(); - function_requires< AdaptableBinaryFunctionConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( NumericValueConcept )); + BOOST_CONCEPT_ASSERT(( NumericValueConcept )); + BOOST_CONCEPT_ASSERT(( AdaptableBinaryFunctionConcept )); 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 >(); - function_requires< NumericValueConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( NumericValueConcept )); if(d == base_type::infinite_distance()) { return base_type::infinite_result(); @@ -99,7 +100,7 @@ Measure measure, Combinator combine) { - function_requires< DistanceMeasureConcept >(); + BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept )); 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 >(); + BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept )); typedef typename Measure::distance_type Distance; return mean_geodesic(g, dist, measure, std::plus()); @@ -139,15 +140,15 @@ GeodesicMap geo, Measure measure) { - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; typedef typename graph_traits::vertex_iterator VertexIterator; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type DistanceMap; - function_requires< DistanceMeasureConcept >(); + BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept )); typedef typename Measure::result_type Result; - function_requires< WritablePropertyMapConcept >(); - function_requires< NumericValueConcept >(); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( NumericValueConcept )); // 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::value_type all_mean_geodesics(const Graph& g, DistanceMatrixMap dist, GeodesicMap geo) { - function_requires< GraphConcept >(); + BOOST_CONCEPT_ASSERT(( GraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type DistanceMap; - function_requires< WritablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); typedef typename property_traits::value_type Result; return all_mean_geodesics(g, dist, geo, measure_mean_geodesic(g, DistanceMap())); @@ -193,7 +194,7 @@ inline typename Measure::result_type small_world_distance(const Graph& g, GeodesicMap geo, Measure measure) { - function_requires< DistanceMeasureConcept >(); + BOOST_CONCEPT_ASSERT(( DistanceMeasureConcept )); typedef typename Measure::result_type Result; Result sum = detail::combine_distances(g, geo, std::plus(), Result(0)); Index: boost/graph/astar_search.hpp =================================================================== --- boost/graph/astar_search.hpp (Revision 76000) +++ boost/graph/astar_search.hpp (Arbeitskopie) @@ -25,8 +25,8 @@ #include #include #include +#include - namespace boost { @@ -34,7 +34,7 @@ struct AStarHeuristicConcept { void constraints() { - function_requires< CopyConstructibleConcept >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept )); h(u); } Heuristic h; @@ -58,7 +58,7 @@ struct AStarVisitorConcept { void constraints() { - function_requires< CopyConstructibleConcept >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept )); vis.initialize_vertex(u, g); vis.discover_vertex(u, g); vis.examine_vertex(u, g); Index: boost/graph/howard_cycle_ratio.hpp =================================================================== --- boost/graph/howard_cycle_ratio.hpp (Revision 76000) +++ boost/graph/howard_cycle_ratio.hpp (Arbeitskopie) @@ -20,6 +20,7 @@ #include #include #include +#include /** @file howard_cycle_ratio.hpp * @brief The implementation of the maximum/minimum cycle ratio/mean algorithm. @@ -477,13 +478,13 @@ { typedef typename graph_traits::directed_category DirCat; BOOST_STATIC_ASSERT((is_convertible::value == true)); - function_requires< IncidenceGraphConcept >(); - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef typename graph_traits::vertex_descriptor Vertex; - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename graph_traits::edge_descriptor Edge; - function_requires< ReadablePropertyMapConcept >(); - function_requires< ReadablePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); if(pcc == 0) { return detail::mcr_howard( Index: boost/graph/breadth_first_search.hpp =================================================================== --- boost/graph/breadth_first_search.hpp (Revision 76000) +++ boost/graph/breadth_first_search.hpp (Arbeitskopie) @@ -24,6 +24,7 @@ #include #include #include +#include #ifdef BOOST_GRAPH_USE_MPI #include @@ -34,7 +35,7 @@ template struct BFSVisitorConcept { void constraints() { - function_requires< CopyConstructibleConcept >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept )); vis.initialize_vertex(u, g); vis.discover_vertex(u, g); vis.examine_vertex(u, g); @@ -59,12 +60,12 @@ typename graph_traits::vertex_descriptor s, Buffer& Q, BFSVisitor vis, ColorMap color) { - function_requires< IncidenceGraphConcept >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); typedef graph_traits GTraits; typedef typename GTraits::vertex_descriptor Vertex; typedef typename GTraits::edge_descriptor Edge; - function_requires< BFSVisitorConcept >(); - function_requires< ReadWritePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( BFSVisitorConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type ColorValue; typedef color_traits Color; typename GTraits::out_edge_iterator ei, ei_end; Index: boost/graph/neighbor_bfs.hpp =================================================================== --- boost/graph/neighbor_bfs.hpp (Revision 76000) +++ boost/graph/neighbor_bfs.hpp (Arbeitskopie) @@ -24,13 +24,14 @@ #include #include #include +#include namespace boost { template struct NeighborBFSVisitorConcept { void constraints() { - function_requires< CopyConstructibleConcept >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept )); 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 >(); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); typedef graph_traits GTraits; typedef typename GTraits::vertex_descriptor Vertex; typedef typename GTraits::edge_descriptor Edge; - function_requires< - NeighborBFSVisitorConcept >(); - function_requires< ReadWritePropertyMapConcept >(); + BOOST_CONCEPT_ASSERT(( + NeighborBFSVisitorConcept )); + BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type ColorValue; typedef color_traits Color; Index: libs/graph/test/test_construction.hpp =================================================================== --- libs/graph/test/test_construction.hpp (Revision 76047) +++ libs/graph/test/test_construction.hpp (Arbeitskopie) @@ -7,6 +7,7 @@ #ifndef TEST_CONSTRUCTION_HPP #define TEST_CONSTRUCTION_HPP +#include #include /** @name Build Graph Index: libs/graph/test/adj_list_cc.cpp =================================================================== --- libs/graph/test/adj_list_cc.cpp (Revision 76047) +++ libs/graph/test/adj_list_cc.cpp (Arbeitskopie) @@ -9,6 +9,7 @@ #include #include #include +#include int main(int,char*[]) { @@ -21,20 +22,20 @@ > Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableIncidenceGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); } { typedef adjacency_list Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< BidirectionalGraphConcept >(); - function_requires< MutableBidirectionalGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); } { typedef adjacency_list< listS, listS, directedS, @@ -66,20 +67,20 @@ > Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableIncidenceGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); } { typedef adjacency_list< listS, listS, undirectedS, @@ -88,20 +89,20 @@ > Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableBidirectionalGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); } // Checking adjacency_list with EdgeList=setS { @@ -111,21 +112,21 @@ > Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< BidirectionalGraphConcept >(); - function_requires< MutableBidirectionalGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); } { typedef adjacency_list< setS, listS, directedS, @@ -134,20 +135,20 @@ > Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableIncidenceGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); } { typedef adjacency_list< setS, listS, undirectedS, @@ -156,105 +157,105 @@ > Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableBidirectionalGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); } // Check adjacency_list without any properties { typedef adjacency_list Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableIncidenceGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); } { typedef adjacency_list Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< BidirectionalGraphConcept >(); - function_requires< MutableBidirectionalGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); } { typedef adjacency_list< listS, listS, directedS> Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableIncidenceGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); } { typedef adjacency_list< listS, listS, undirectedS> Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableBidirectionalGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); } // Checking EdgeList=setS with no properties { typedef adjacency_list Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< BidirectionalGraphConcept >(); - function_requires< MutableBidirectionalGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); - function_requires< ReadablePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept )); } { typedef adjacency_list< setS, listS, directedS> Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< MutableIncidenceGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( MutableIncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); } { typedef adjacency_list< setS, listS, undirectedS> Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableBidirectionalGraphConcept >(); - function_requires< MutableEdgeListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableBidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableEdgeListGraphConcept )); } return 0; } Index: libs/graph/test/graph_concepts.cpp =================================================================== --- libs/graph/test/graph_concepts.cpp (Revision 76047) +++ libs/graph/test/graph_concepts.cpp (Arbeitskopie) @@ -8,6 +8,7 @@ //======================================================================= #include #include +#include int main(int,char*[]) { @@ -19,22 +20,22 @@ typedef incidence_graph_archetype Graph1; - function_requires< IncidenceGraphConcept >(); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); typedef adjacency_graph_archetype Graph2; - function_requires< AdjacencyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); typedef vertex_list_graph_archetype Graph3; - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); - function_requires< ColorValueConcept >(); + BOOST_CONCEPT_ASSERT(( ColorValueConcept )); typedef incidence_graph_archetype G; typedef property_graph_archetype Graph4; - function_requires< PropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); return 0; } Index: libs/graph/test/grid_graph_cc.cpp =================================================================== --- libs/graph/test/grid_graph_cc.cpp (Revision 76047) +++ libs/graph/test/grid_graph_cc.cpp (Arbeitskopie) @@ -10,6 +10,7 @@ #include #include #include +#include #define DIMENSIONS 3 using namespace boost; @@ -20,14 +21,14 @@ typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT((BidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT((VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT((EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT((IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT((AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT((AdjacencyMatrixConcept )); + BOOST_CONCEPT_ASSERT((ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT((ReadablePropertyGraphConcept )); return (0); } Index: libs/graph/test/filtered_graph_cc.cpp =================================================================== --- libs/graph/test/filtered_graph_cc.cpp (Revision 76047) +++ libs/graph/test/filtered_graph_cc.cpp (Arbeitskopie) @@ -10,6 +10,7 @@ #include #include #include +#include int main(int,char*[]) { @@ -22,12 +23,12 @@ typedef filtered_graph > ResGraph; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< PropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); } // Check filtered_graph with bidirectional adjacency_list { @@ -35,7 +36,7 @@ no_property, property > Graph; typedef property_map::type ResCapMap; typedef filtered_graph > ResGraph; - function_requires< BidirectionalGraphConcept >(); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); } return 0; } Index: libs/graph/test/vector_graph_cc.cpp =================================================================== --- libs/graph/test/vector_graph_cc.cpp (Revision 76047) +++ libs/graph/test/vector_graph_cc.cpp (Arbeitskopie) @@ -7,6 +7,7 @@ // http://www.boost.org/LICENSE_1_0.txt) //======================================================================= #include +#include #include #include @@ -24,9 +25,9 @@ // Check "vector as graph" { typedef std::vector< std::list > Graph; - function_requires< VertexListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); } return 0; } Index: libs/graph/test/test_properties.hpp =================================================================== --- libs/graph/test/test_properties.hpp (Revision 76047) +++ libs/graph/test/test_properties.hpp (Arbeitskopie) @@ -7,6 +7,8 @@ #ifndef TEST_PROPERTIES_HPP #define TEST_PROPERTIES_HPP +#include + template T const& as_const(T& x) { return x; } template void ignore(T const&) { } Index: libs/graph/test/test_destruction.hpp =================================================================== --- libs/graph/test/test_destruction.hpp (Revision 76047) +++ libs/graph/test/test_destruction.hpp (Arbeitskopie) @@ -7,6 +7,7 @@ #ifndef TEST_DESTRUCTION_HPP #define TEST_DESTRUCTION_HPP +#include #include /** @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)); - // function_requires< VeretexMutableGraphConcept >(); + // BOOST_CONCEPT_ASSERT(( VeretexMutableGraphConcept )); std::cout << "...destroy_labeled\n"; // Remove the roof vertex Index: libs/graph/test/test_direction.hpp =================================================================== --- libs/graph/test/test_direction.hpp (Revision 76047) +++ libs/graph/test/test_direction.hpp (Arbeitskopie) @@ -9,6 +9,7 @@ #include #include +#include /** @name Test Out-Directed Graph * Test all graphs that have directed out edges. Index: libs/graph/test/reverse_graph_cc.cpp =================================================================== --- libs/graph/test/reverse_graph_cc.cpp (Revision 76047) +++ libs/graph/test/reverse_graph_cc.cpp (Arbeitskopie) @@ -10,6 +10,7 @@ #include #include #include +#include #include int main(int,char*[]) @@ -23,11 +24,11 @@ property > AdjList; typedef reverse_graph Graph; - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< ReadablePropertyGraphConcept >(); - function_requires< ReadablePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept )); AdjList g; Graph gr(g); get_property(gr, graph_name_t()); @@ -40,11 +41,11 @@ property > AdjList; typedef reverse_graph Graph; - function_requires< VertexListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< PropertyGraphConcept >(); - function_requires< PropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); AdjList g; Graph gr(g); get_property(gr, graph_name_t()); Index: libs/graph/test/test_iteration.hpp =================================================================== --- libs/graph/test/test_iteration.hpp (Revision 76047) +++ libs/graph/test/test_iteration.hpp (Arbeitskopie) @@ -7,6 +7,7 @@ #ifndef TEST_ITERATION_HPP #define TEST_ITERATION_HPP +#include #include /** @name Test Vertex List Index: libs/graph/test/read_propmap.cpp =================================================================== --- libs/graph/test/read_propmap.cpp (Revision 76047) +++ libs/graph/test/read_propmap.cpp (Arbeitskopie) @@ -6,6 +6,7 @@ #include #include +#include // Test contributed by Dmitry that validates a read-only property map bug // for bundled properties. @@ -24,7 +25,7 @@ typedef property_map::type WeightMap; typedef property_map::const_type cWeightMap; typedef graph_traits::edge_descriptor Edge; - function_requires >(); - function_requires >(); + BOOST_CONCEPT_ASSERT((ReadablePropertyMapConcept )); + BOOST_CONCEPT_ASSERT((ReadablePropertyMapConcept )); return 0; } Index: libs/graph/test/adj_matrix_cc.cpp =================================================================== --- libs/graph/test/adj_matrix_cc.cpp (Revision 76047) +++ libs/graph/test/adj_matrix_cc.cpp (Arbeitskopie) @@ -9,6 +9,7 @@ #include #include #include +#include int main(int,char*[]) { @@ -16,21 +17,21 @@ // Check adjacency_matrix without properties { typedef adjacency_matrix Graph; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableGraphConcept >(); - function_requires< AdjacencyMatrixConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); } { typedef adjacency_matrix Graph; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< MutableGraphConcept >(); - function_requires< AdjacencyMatrixConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( MutableGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); } // Check adjacency_matrix with properties { @@ -39,17 +40,17 @@ property > Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< AdjacencyMatrixConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< ReadablePropertyGraphConcept >(); - function_requires< PropertyGraphConcept >(); - function_requires< PropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); } { typedef adjacency_matrix > Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< AdjacencyMatrixConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< ReadablePropertyGraphConcept >(); - function_requires< PropertyGraphConcept >(); - function_requires< PropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); } return 0; } Index: libs/graph/test/edge_list_cc.cpp =================================================================== --- libs/graph/test/edge_list_cc.cpp (Revision 76047) +++ libs/graph/test/edge_list_cc.cpp (Arbeitskopie) @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -24,10 +25,10 @@ typedef graph_traits::edge_descriptor Edge; - function_requires< EdgeListGraphConcept >(); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); - function_requires< ReadablePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( ReadablePropertyGraphConcept )); } return 0; } Index: libs/graph/test/test_graph.hpp =================================================================== --- libs/graph/test/test_graph.hpp (Revision 76047) +++ libs/graph/test/test_graph.hpp (Arbeitskopie) @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include Index: libs/graph/test/stanford_graph_cc.cpp =================================================================== --- libs/graph/test/stanford_graph_cc.cpp (Revision 76047) +++ libs/graph/test/stanford_graph_cc.cpp (Arbeitskopie) @@ -9,6 +9,7 @@ #include #include #include +#include int main(int,char*[]) { @@ -18,28 +19,28 @@ typedef Graph* Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< PropertyGraphConcept >(); - function_requires< - PropertyGraphConcept > >(); - function_requires< - PropertyGraphConcept > >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( PropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + PropertyGraphConcept > )); + BOOST_CONCEPT_ASSERT(( + PropertyGraphConcept > )); } { typedef const Graph* Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< IncidenceGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept > >(); - function_requires< - ReadablePropertyGraphConcept > >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept > )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept > )); } return 0; } Index: libs/graph/test/leda_graph_cc.cpp =================================================================== --- libs/graph/test/leda_graph_cc.cpp (Revision 76047) +++ libs/graph/test/leda_graph_cc.cpp (Arbeitskopie) @@ -8,8 +8,8 @@ //======================================================================= #include #include +#include - int main(int,char*[]) { @@ -18,21 +18,21 @@ typedef leda::GRAPH Graph; typedef graph_traits::vertex_descriptor Vertex; typedef graph_traits::edge_descriptor Edge; - function_requires< VertexListGraphConcept >(); - function_requires< BidirectionalGraphConcept >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< VertexMutableGraphConcept >(); - function_requires< EdgeMutableGraphConcept >(); - function_requires< VertexMutablePropertyGraphConcept >(); - function_requires< EdgeMutablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); - function_requires< - LvaluePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutableGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); + BOOST_CONCEPT_ASSERT(( + LvaluePropertyGraphConcept )); } return 0; } Index: libs/graph/doc/transitive_closure.w =================================================================== --- libs/graph/doc/transitive_closure.w (Revision 75975) +++ libs/graph/doc/transitive_closure.w (Arbeitskopie) @@ -160,11 +160,11 @@ @d Concept checking @{ -function_requires< VertexListGraphConcept >(); -function_requires< AdjacencyGraphConcept >(); -function_requires< VertexMutableGraphConcept >(); -function_requires< EdgeMutableGraphConcept >(); -function_requires< ReadablePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); +BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); +BOOST_CONCEPT_ASSERT(( VertexMutableGraphConcept )); +BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept )); +BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); @} \noindent To simplify the code in the rest of the function we make the @@ -566,8 +566,8 @@ typedef typename graph_traits::vertex_descriptor vertex; typedef typename graph_traits::vertex_iterator vertex_iterator; - function_requires< AdjacencyMatrixConcept >(); - function_requires< EdgeMutableGraphConcept >(); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept )); // Matrix form: // for k @@ -597,8 +597,8 @@ typedef typename graph_traits::vertex_descriptor vertex; typedef typename graph_traits::vertex_iterator vertex_iterator; - function_requires< AdjacencyMatrixConcept >(); - function_requires< EdgeMutableGraphConcept >(); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); + BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept )); // Make sure second loop will work if (num_vertices(g) == 0) @@ -671,6 +671,7 @@ #include #include #include +#include namespace boost { Index: libs/graph/doc/BidirectionalGraph.html =================================================================== --- libs/graph/doc/BidirectionalGraph.html (Revision 75975) +++ libs/graph/doc/BidirectionalGraph.html (Arbeitskopie) @@ -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; Index: libs/graph/doc/AdjacencyGraph.html =================================================================== --- libs/graph/doc/AdjacencyGraph.html (Revision 75975) +++ libs/graph/doc/AdjacencyGraph.html (Arbeitskopie) @@ -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; Index: libs/graph/doc/IncidenceGraph.html =================================================================== --- libs/graph/doc/IncidenceGraph.html (Revision 75975) +++ libs/graph/doc/IncidenceGraph.html (Arbeitskopie) @@ -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; Index: libs/graph/doc/MutablePropertyGraph.html =================================================================== --- libs/graph/doc/MutablePropertyGraph.html (Revision 75975) +++ libs/graph/doc/MutablePropertyGraph.html (Arbeitskopie) @@ -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); } Index: libs/graph/doc/AStarHeuristic.html =================================================================== --- libs/graph/doc/AStarHeuristic.html (Revision 75975) +++ libs/graph/doc/AStarHeuristic.html (Arbeitskopie) @@ -116,7 +116,7 @@ struct AStarHeuristicConcept { void constraints() { - function_requires< CopyConstructibleConcept<Heuristic> >(); + BOOST_CONCEPT_ASSERT(( CopyConstructibleConcept<Heuristic> )); h(u); } Heuristic h; Index: libs/graph/doc/isomorphism-impl-v2.w =================================================================== --- libs/graph/doc/isomorphism-impl-v2.w (Revision 75975) +++ libs/graph/doc/isomorphism-impl-v2.w (Arbeitskopie) @@ -388,31 +388,31 @@ @d Concept checking @{ // Graph requirements -function_requires< VertexListGraphConcept >(); -function_requires< EdgeListGraphConcept >(); -function_requires< VertexListGraphConcept >(); -function_requires< BidirectionalGraphConcept >(); +BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); +BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); +BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); +BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); typedef typename graph_traits::vertex_descriptor vertex1_t; typedef typename graph_traits::vertex_descriptor vertex2_t; typedef typename graph_traits::vertices_size_type size_type; // Vertex invariant requirement -function_requires< AdaptableUnaryFunctionConcept >(); -function_requires< AdaptableUnaryFunctionConcept >(); +BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept )); +BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept )); // Property map requirements -function_requires< ReadWritePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type IsoMappingValue; BOOST_STATIC_ASSERT((is_same::value)); -function_requires< ReadablePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type IndexMap1Value; BOOST_STATIC_ASSERT((is_convertible::value)); -function_requires< ReadablePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type IndexMap2Value; BOOST_STATIC_ASSERT((is_convertible::value)); @} Index: libs/graph/doc/Graph.html =================================================================== --- libs/graph/doc/Graph.html (Revision 75975) +++ libs/graph/doc/Graph.html (Arbeitskopie) @@ -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; }; Index: libs/graph/doc/leda_conversion.html =================================================================== --- libs/graph/doc/leda_conversion.html (Revision 75975) +++ libs/graph/doc/leda_conversion.html (Arbeitskopie) @@ -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; } Index: libs/graph/doc/isomorphism-impl-v3.w =================================================================== --- libs/graph/doc/isomorphism-impl-v3.w (Revision 75975) +++ libs/graph/doc/isomorphism-impl-v3.w (Arbeitskopie) @@ -507,31 +507,31 @@ @d Concept checking @{ // Graph requirements -function_requires< VertexListGraphConcept >(); -function_requires< EdgeListGraphConcept >(); -function_requires< VertexListGraphConcept >(); -function_requires< BidirectionalGraphConcept >(); +BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); +BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); +BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); +BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); typedef typename graph_traits::vertex_descriptor vertex1_t; typedef typename graph_traits::vertex_descriptor vertex2_t; typedef typename graph_traits::vertices_size_type size_type; // Vertex invariant requirement -function_requires< AdaptableUnaryFunctionConcept >(); -function_requires< AdaptableUnaryFunctionConcept >(); +BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept )); +BOOST_CONCEPT_ASSERT(( AdaptableUnaryFunctionConcept )); // Property map requirements -function_requires< ReadWritePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type IsoMappingValue; BOOST_STATIC_ASSERT((is_same::value)); -function_requires< ReadablePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type IndexMap1Value; BOOST_STATIC_ASSERT((is_convertible::value)); -function_requires< ReadablePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type IndexMap2Value; BOOST_STATIC_ASSERT((is_convertible::value)); @} Index: libs/graph/doc/biconnected_components.w =================================================================== --- libs/graph/doc/biconnected_components.w (Revision 75975) +++ libs/graph/doc/biconnected_components.w (Arbeitskopie) @@ -156,11 +156,11 @@ @d Concept checking of type parameters @{ -function_requires< VertexListGraphConcept >(); -function_requires< IncidenceGraphConcept >(); -function_requires< WritablePropertyMapConcept >(); -function_requires< ReadWritePropertyMapConcept >(); -function_requires< ReadWritePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); +BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); +BOOST_CONCEPT_ASSERT(( WritablePropertyMapConcept )); +BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); +BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); @} The first step of the algorithm is to initialize the discover times of @@ -286,6 +286,7 @@ #include #include #include +#include namespace boost { @ Index: libs/graph/doc/VertexListGraph.html =================================================================== --- libs/graph/doc/VertexListGraph.html (Revision 75975) +++ libs/graph/doc/VertexListGraph.html (Arbeitskopie) @@ -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); Index: libs/graph/doc/VertexAndEdgeListGraph.html =================================================================== --- libs/graph/doc/VertexAndEdgeListGraph.html (Revision 75975) +++ libs/graph/doc/VertexAndEdgeListGraph.html (Arbeitskopie) @@ -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> )); } }; Index: libs/graph/doc/PropertyGraph.html =================================================================== --- libs/graph/doc/PropertyGraph.html (Revision 75975) +++ libs/graph/doc/PropertyGraph.html (Arbeitskopie) @@ -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); Index: libs/graph/doc/isomorphism-impl.w =================================================================== --- libs/graph/doc/isomorphism-impl.w (Revision 75975) +++ libs/graph/doc/isomorphism-impl.w (Arbeitskopie) @@ -301,21 +301,21 @@ @d Concept checking @{ // Graph requirements -function_requires< VertexListGraphConcept >(); -function_requires< EdgeListGraphConcept >(); -function_requires< VertexListGraphConcept >(); -function_requires< BidirectionalGraphConcept >(); +BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); +BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); +BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); +BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); // Property map requirements -function_requires< ReadWritePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); typedef typename property_traits::value_type IndexMappingValue; BOOST_STATIC_ASSERT((is_same::value)); -function_requires< ReadablePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type IndexMap1Value; BOOST_STATIC_ASSERT((is_convertible::value)); -function_requires< ReadablePropertyMapConcept >(); +BOOST_CONCEPT_ASSERT(( ReadablePropertyMapConcept )); typedef typename property_traits::value_type IndexMap2Value; BOOST_STATIC_ASSERT((is_convertible::value)); @} Index: libs/graph/doc/MutableGraph.html =================================================================== --- libs/graph/doc/MutableGraph.html (Revision 75975) +++ libs/graph/doc/MutableGraph.html (Arbeitskopie) @@ -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; Index: libs/graph/doc/constructing_algorithms.html =================================================================== --- libs/graph/doc/constructing_algorithms.html (Revision 75975) +++ libs/graph/doc/constructing_algorithms.html (Arbeitskopie) @@ -79,7 +79,7 @@ href="./VertexListGraph.html">VertexListGraph. 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 -function_requires() (see Section BOOST_CONCEPT_ASSERT() (see Section Concept Checking 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; Index: libs/graph/doc/EdgeListGraph.html =================================================================== --- libs/graph/doc/EdgeListGraph.html (Revision 75975) +++ libs/graph/doc/EdgeListGraph.html (Arbeitskopie) @@ -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); Index: libs/graph/doc/KeyedUpdatableQueue.html =================================================================== --- libs/graph/doc/KeyedUpdatableQueue.html (Revision 75975) +++ libs/graph/doc/KeyedUpdatableQueue.html (Arbeitskopie) @@ -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) { Index: libs/graph/doc/UpdatableQueue.html =================================================================== --- libs/graph/doc/UpdatableQueue.html (Revision 75975) +++ libs/graph/doc/UpdatableQueue.html (Arbeitskopie) @@ -58,7 +58,7 @@ struct UpdatableQueueConcept { void constraints() { - function_requires< Buffer<Q> >(); + BOOST_CONCEPT_ASSERT(( Buffer<Q> )); q.update(g_ct); } Index: libs/graph/example/implicit_graph.cpp =================================================================== --- libs/graph/example/implicit_graph.cpp (Revision 75975) +++ libs/graph/example/implicit_graph.cpp (Arbeitskopie) @@ -4,7 +4,7 @@ // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) - +#include #include #include #include @@ -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 >(); - function_requires< AdjacencyGraphConcept >(); - function_requires< VertexListGraphConcept >(); - function_requires< EdgeListGraphConcept >(); - function_requires< AdjacencyMatrixConcept >(); - function_requires< - ReadablePropertyMapConcept >(); - function_requires< - ReadablePropertyGraphConcept >(); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyGraphConcept )); + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( EdgeListGraphConcept )); + BOOST_CONCEPT_ASSERT(( AdjacencyMatrixConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyMapConcept )); + BOOST_CONCEPT_ASSERT(( + ReadablePropertyGraphConcept )); // Specify the size of the graph on the command line, or use a default size // of 5. Index: libs/graph/example/put-get-helper-eg.cpp =================================================================== --- libs/graph/example/put-get-helper-eg.cpp (Revision 75975) +++ libs/graph/example/put-get-helper-eg.cpp (Arbeitskopie) @@ -8,6 +8,7 @@ #include #include #include +#include #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 )); return 0; } Index: libs/graph/example/loops_dfs.cpp =================================================================== --- libs/graph/example/loops_dfs.cpp (Revision 75975) +++ libs/graph/example/loops_dfs.cpp (Arbeitskopie) @@ -6,6 +6,7 @@ // http://www.boost.org/LICENSE_1_0.txt) //======================================================================= #include +#include #include #include #include @@ -47,7 +48,7 @@ const Graph & g, Loops & loops) // A container of sets of vertices { - function_requires < BidirectionalGraphConcept < Graph > >(); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept )); 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 )); typedef typename graph_traits < Graph >::vertex_descriptor Vertex; typedef color_traits < default_color_type > Color; Index: libs/graph/example/leda-concept-check.cpp =================================================================== --- libs/graph/example/leda-concept-check.cpp (Revision 75975) +++ libs/graph/example/leda-concept-check.cpp (Arbeitskopie) @@ -7,15 +7,16 @@ //======================================================================= #include #include +#include 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 Graph; + BOOST_CONCEPT_ASSERT(( VertexListGraphConcept )); + BOOST_CONCEPT_ASSERT(( BidirectionalGraphConcept< Graph> )); + BOOST_CONCEPT_ASSERT(( VertexMutableGraphConcept< Graph> )); + BOOST_CONCEPT_ASSERT(( EdgeMutableGraphConcept )); return EXIT_SUCCESS; } Index: libs/concept_check/reference.htm =================================================================== --- libs/concept_check/reference.htm (Revision 75975) +++ libs/concept_check/reference.htm (Arbeitskopie) @@ -366,6 +366,12 @@ void function_requires(); +

function_requires() has been deprecated in favor of BOOST_CONCEPT_ASSERT. + This means that function_requires< Concept >(); + becomes BOOST_CONCEPT_ASSERT((Concept)); + (don't forget to #include "boost/concept/assert.hpp"). + +

Deprecated Macros