template struct Graph { /** * The size_type of a graph is an integral type that can encode the largest * possible number of edges admissable by the graph type. Note that the * number of edges in even a simple graph can be O(|V|^2), which is why the * Graph's size type is determined by edge count rather than vertex count. */ typedef ... size_type; /** \brief Returns the number of vertices in a graph. * The order of a graph is determined by the number of vertices. A graph with * whose order is 0 is said to be a null graph. */ size_type order() const; /** \brief Returns true if the graph has no vertices. * A graph with no vertices (i.e., of order 0) is said to be a null graph. A * null graph has no edges. */ bool null() const; /** @brief Returns the number of edges in a graph. * The size of a graph is determined by the number of edges connecting its * verticse. A graph with no edges is said to be empty. */ size_type size() const; /** @brief Returns true if the graph has no edges. * A graph with no edges (i.e., of size 0) is said to be an empty graph. Note * that all null graphs are also empty. */ bool empty() const; };