diff --git a/docs/AdjacencyGraph.html b/docs/AdjacencyGraph.html
index ed85b1ad..0543c072 100644
--- a/docs/AdjacencyGraph.html
+++ b/docs/AdjacencyGraph.html
@@ -106,8 +106,8 @@ The adjacent_vertices() function must return in constant time.
typedef typename boost::graph_traits<G>::adjacency_iterator
adjacency_iterator;
void constraints() {
- REQUIRE(G, IncidenceGraph);
- REQUIRE(adjacency_iterator, MultiPassInputIterator);
+ function_requires< IncidenceGraph<G> >();
+ function_requires< MultiPassInputIterator<adjacency_iterator> >();
p = adjacent_vertices(v, g);
v = *p.first;
diff --git a/docs/BidirectionalGraph.html b/docs/BidirectionalGraph.html
index eb598503..855b1a70 100644
--- a/docs/BidirectionalGraph.html
+++ b/docs/BidirectionalGraph.html
@@ -139,8 +139,8 @@ undirected graphs).
typedef typename boost::graph_traits<G>::in_edge_iterator
in_edge_iterator;
void constraints() {
- REQUIRE(G, IncidenceGraph);
- REQUIRE(in_edge_iterator, MultiPassInputIterator);
+ function_requires< IncidenceGraph<G> >();
+ function_requires< MultiPassInputIterator<in_edge_iterator> >();
p = in_edges(v, g);
e = *p.first;
diff --git a/docs/EdgeListGraph.html b/docs/EdgeListGraph.html
index c908499a..c36b8575 100644
--- a/docs/EdgeListGraph.html
+++ b/docs/EdgeListGraph.html
@@ -144,8 +144,8 @@ must all return in constant time.
typedef typename boost::graph_traits<G>::edge_iterator
edge_iterator;
void constraints() {
- REQUIRE(G, Graph);
- REQUIRE(edge_iterator, MultiPassInputIterator);
+ function_requires< Graph<G> >();
+ function_requires< MultiPassInputIterator<edge_iterator> >();
p = edges(g);
E = num_edges(g);
diff --git a/docs/Graph.html b/docs/Graph.html
index 3f34daf8..13b6044c 100644
--- a/docs/Graph.html
+++ b/docs/Graph.html
@@ -106,12 +106,12 @@ None required.
typedef typename boost::graph_traits<G>::edge_parallel_category edge_parallel_category;
void constraints() {
- REQUIRE(vertex_descriptor, DefaultConstructible);
- REQUIRE(vertex_descriptor, EqualityComparable);
- REQUIRE(vertex_descriptor, Assignable);
- REQUIRE(edge_descriptor, DefaultConstructible);
- REQUIRE(edge_descriptor, EqualityComparable);
- REQUIRE(edge_descriptor, Assignable);
+ function_requires< DefaultConstructible<vertex_descriptor> >();
+ function_requires< EqualityComparable<vertex_descriptor> >();
+ function_requires< Assignable<vertex_descriptor> >();
+ function_requires< DefaultConstructible<edge_descriptor> >();
+ function_requires< EqualityComparable<edge_descriptor> >();
+ function_requires< Assignable<edge_descriptor> >();
}
G g;
};
diff --git a/docs/IncidenceGraph.html b/docs/IncidenceGraph.html
index d554e9e7..1e47357b 100644
--- a/docs/IncidenceGraph.html
+++ b/docs/IncidenceGraph.html
@@ -141,8 +141,8 @@ function must be linear in the number of out-edges.
{
typedef typename boost::graph_traits<G>::out_edge_iterator out_edge_iterator;
void constraints() {
- REQUIRE(G, Graph);
- REQUIRE(out_edge_iterator, MultiPassInputIterator);
+ function_requires< Graph<G> >();
+ function_requires< MultiPassInputIterator<out_edge_iterator> >();
p = out_edges(v, g);
e = *p.first;
diff --git a/docs/MutablePropertyGraph.html b/docs/MutablePropertyGraph.html
index 2e1e03fe..b666775f 100644
--- a/docs/MutablePropertyGraph.html
+++ b/docs/MutablePropertyGraph.html
@@ -129,7 +129,7 @@ Return type: vertex_descriptor
{
typedef typename boost::graph_traits<G>::edge_descriptor edge_descriptor;
void constraints() {
- REQUIRE(G, MutableGraph);
+ function_requires< MutableGraph<G> >();
v = add_vertex(g, vp);
p = add_edge(g, u, v, ep);
}
diff --git a/docs/PropertyGraph.html b/docs/PropertyGraph.html
index 0c561a23..23604146 100644
--- a/docs/PropertyGraph.html
+++ b/docs/PropertyGraph.html
@@ -176,9 +176,9 @@ The get() property map function must be constant time.
typedef typename property_map<G, Property>::type Map;
typedef typename property_map<G, Property>::const_type const_Map;
void constraints() {
- REQUIRE(G, Graph);
- REQUIRE2(Map, X, ReadWritePropertyMap);
- REQUIRE2(const_Map, X, ReadablePropertyMap);
+ function_requires< Graph<G> >();
+ function_requires< ReadWritePropertyMap<Map, X> >();
+ function_requires< ReadablePropertyMap<const_Map, X> >();
Map pmap = get(Property(), g);
pval = get(Property(), g, x);
diff --git a/docs/VertexAndEdgeListGraph.html b/docs/VertexAndEdgeListGraph.html
index ab36a120..c9f51fd7 100644
--- a/docs/VertexAndEdgeListGraph.html
+++ b/docs/VertexAndEdgeListGraph.html
@@ -54,9 +54,10 @@ requirements are added.
template <class G>
struct VertexAndEdgeListGraph
{
- CLASS_REQUIRES(G, VertexListGraph);
- CLASS_REQUIRES(G, EdgeListGraph);
- void constraints() { }
+ void constraints() {
+ function_requires< VertexListGraph<G> >();
+ function_requires< EdgeListGraph<G> >();
+ }
};
diff --git a/docs/VertexListGraph.html b/docs/VertexListGraph.html
index 8353d017..66c3c897 100644
--- a/docs/VertexListGraph.html
+++ b/docs/VertexListGraph.html
@@ -104,8 +104,8 @@ The vertices() function must return in constant time.
typedef typename boost::graph_traits<G>::vertex_iterator
vertex_iterator;
void constraints() {
- REQUIRE(G, AdjacencyGraph);
- REQUIRE(vertex_iterator, MultiPassInputIterator);
+ function_requires< AdjacencyGraph<G> >();
+ function_requires< MultiPassInputIterator<vertex_iterator> >();
p = vertices(g);
V = num_vertices(g);
diff --git a/docs/constructing_algorithms.html b/docs/constructing_algorithms.html
index 6139c577..9774e9a5 100644
--- a/docs/constructing_algorithms.html
+++ b/docs/constructing_algorithms.html
@@ -82,8 +82,8 @@ most algorithms written to date are). We do restrict the graph type to
those types that model 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 the
-REQUIRE macro (see Section function_requires() (see Section Concept
Checking for more details about concept checking).
@@ -126,11 +126,11 @@ namespace boost {
typedef typename property_traits<Color>::value_type ColorType;
typedef typename property_traits<Order>::value_type OrderType;
- REQUIRE(VertexListGraph, VertexListGraph);
- REQUIRE2(Color, vertex_descriptor, ReadWritePropertyMap);
- REQUIRE(ColorType, Integer);
- REQUIRE(Order, size_type, ReadablePropertyMap);
- REQUIRE_SAME_TYPE(OrderType, vertex_descriptor);
+ function_requires< VertexListGraph<VertexListGraph> >();
+ function_requires< ReadWritePropertyMap<Color, vertex_descriptor> >();
+ function_requires< Integer<ColorType> >();
+ function_requires< size_type, ReadablePropertyMap<Order> >();
+ typedef typename same_type<OrderType, vertex_descriptor>::type req_same;
size_type max_color = 0;
const size_type V = num_vertices(G);
diff --git a/docs/leda_conversion.html b/docs/leda_conversion.html
index 9d7f7c3e..0279b7b5 100644
--- a/docs/leda_conversion.html
+++ b/docs/leda_conversion.html
@@ -240,9 +240,9 @@ href="../test/graph.cpp">test/graph.cpp.
main(int,char*[])
{
typedef GRAPH<int,int> Graph;
- REQUIRE(Graph, VertexListGraph);
- REQUIRE(Graph, BidirectionalGraph);
- REQUIRE(Graph, MutableGraph);
+ function_requires< VertexListGraph<Graph> >();
+ function_requires< BidirectionalGraph<Graph> >();
+ function_requires< MutableGraph<Graph> >();
return 0;
}