//======================================================================= // Copyright 1997, 1998, 1999, 2000 University of Notre Dame. // Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek // // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) //======================================================================= #include #include #include int main(int,char*[]) { using namespace boost; // Check adjacency_list with properties { typedef adjacency_list, 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< MutableIncidenceGraphConcept >(); function_requires< MutableEdgeListGraphConcept >(); function_requires< VertexMutablePropertyGraphConcept >(); function_requires< EdgeMutablePropertyGraphConcept >(); function_requires< ReadablePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); } { typedef adjacency_list, 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< BidirectionalGraphConcept >(); function_requires< MutableBidirectionalGraphConcept >(); function_requires< MutableEdgeListGraphConcept >(); function_requires< VertexMutablePropertyGraphConcept >(); function_requires< EdgeMutablePropertyGraphConcept >(); function_requires< ReadablePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); } { typedef adjacency_list< listS, listS, directedS, property, 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< MutableIncidenceGraphConcept >(); function_requires< MutableEdgeListGraphConcept >(); function_requires< VertexMutablePropertyGraphConcept >(); function_requires< EdgeMutablePropertyGraphConcept >(); function_requires< ReadablePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); } { typedef adjacency_list< listS, listS, undirectedS, property, 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< MutableBidirectionalGraphConcept >(); function_requires< MutableEdgeListGraphConcept >(); function_requires< VertexMutablePropertyGraphConcept >(); function_requires< EdgeMutablePropertyGraphConcept >(); function_requires< ReadablePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); } // Checking adjacency_list with EdgeList=setS { typedef adjacency_list, 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< BidirectionalGraphConcept >(); function_requires< MutableBidirectionalGraphConcept >(); function_requires< MutableEdgeListGraphConcept >(); function_requires< VertexMutablePropertyGraphConcept >(); function_requires< EdgeMutablePropertyGraphConcept >(); function_requires< ReadablePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); } { typedef adjacency_list< setS, listS, directedS, property, 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< MutableIncidenceGraphConcept >(); function_requires< MutableEdgeListGraphConcept >(); function_requires< VertexMutablePropertyGraphConcept >(); function_requires< EdgeMutablePropertyGraphConcept >(); function_requires< ReadablePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); } { typedef adjacency_list< setS, listS, undirectedS, property, 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< MutableBidirectionalGraphConcept >(); function_requires< MutableEdgeListGraphConcept >(); function_requires< VertexMutablePropertyGraphConcept >(); function_requires< EdgeMutablePropertyGraphConcept >(); function_requires< ReadablePropertyGraphConcept >(); function_requires< LvaluePropertyGraphConcept >(); function_requires< 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 >(); } { 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 >(); } { 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 >(); } { 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 >(); } // 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 >(); } { 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 >(); } { 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 >(); } return 0; }