inline typename property_traits<Components>::value_type connected_components(Graph& G, DFSVisitor v, Components c, Color color, directed_tag) { typedef typename graph_traits<Graph>::vertex_descriptor Vertex; return connected_components(G, v, c, get(vertex_discover_time, G), get(vertex_finish_time, G), color, directed_tag()); }
inline typename property_traits<Components>::value_type connected_components(Graph& G, DFSVisitor v, Components c, directed_tag) { return connected_components(G, v, c, get(vertex_discover_time, G), get(vertex_finish_time, G), get(vertex_color, G), directed_tag()); }
bool is_adj_dispatch(Graph& g, Vertex a, Vertex b, undirected_tag) { return is_adj_dispatch(g, a, b, directed_tag()); }
inline typename graph_traits<Graph>::degree_size_type possible_edges(const Graph& g, size_t k, undirected_tag) { // dirty little trick... return possible_edges(g, k, directed_tag()) / 2; }