19template<Node N, util::HashFunction<N> Hash = std::hash<N>, util::BiPredicate<N> Equal = std::equal_to<N>, AdjacencyContainer<N> AdjContainer = AdjacencyMap<N,Hash,Equal>>
20using UndirectedGraph = graph::__impl::BaseGraph<UndirectedEdge<N,Hash,Equal>,AdjContainer>;
30template<Node N, util::HashFunction<N> Hash = std::hash<N>, util::BiPredicate<N> Equal = std::equal_to<N>, AdjacencyContainer<N> AdjContainer = AdjacencyMap<N,Hash,Equal>>
31using DirectedGraph = graph::__impl::BaseGraph<DirectedEdge<N,Hash,Equal>,AdjContainer>;
35 template<Node N, util::HashFunction<N> Hash = std::hash<N>,util::BiPredicate<N> Equal = std::equal_to<N>>
41 using AdjacencyContainer_t = std::remove_cvref_t<
decltype(adjContainer)>;
42 using N =
typename AdjacencyContainer_t::node_type;
43 using Hash =
typename AdjacencyContainer_t::hash_function;
44 using Equal =
typename AdjacencyContainer_t::equality_predicate;
45 return graph::__impl::BaseGraph<UndirectedEdge<N,Hash,Equal>,AdjacencyContainer_t>(std::move(adjContainer));
49 template<Node N, util::HashFunction<N> Hash = std::hash<N>,util::BiPredicate<N> Equal = std::equal_to<N>>
55 using AdjacencyContainer_t = std::remove_cvref_t<
decltype(adjContainer)>;
56 using N =
typename AdjacencyContainer_t::node_type;
57 using Hash =
typename AdjacencyContainer_t::hash_function;
58 using Equal =
typename AdjacencyContainer_t::equality_predicate;
59 return graph::__impl::BaseGraph<DirectedEdge<N,Hash,Equal>,AdjacencyContainer_t>(std::move(adjContainer));
62 template<Node N, util::HashFunction<N> Hash = std::hash<N>,util::BiPredicate<N> Equal = std::equal_to<N>>
Implementation of an Adjacency Map. Implements AdjacencyContainer.
Definition AdjacencyMap.hpp:18
Definition DirectedAcyclicGraph.hpp:9
static auto UndirectedGraph()
Definition Graph.hpp:36
static auto DirectedGraph()
Definition Graph.hpp:50
static auto DAG(AdjacencyContainer auto &&adjContainer)
Definition Graph.hpp:67
static auto DAG()
Definition Graph.hpp:63
static auto DirectedGraph(AdjacencyContainer auto &&adjContainer)
Definition Graph.hpp:54
static auto UndirectedGraph(AdjacencyContainer auto &&adjContainer)
Definition Graph.hpp:40
Interface for an AdjacencyContainer.
Definition AdjacencyContainer.hpp:12
Definition AdjacencyContainer.hpp:4
graph::__impl::BaseGraph< DirectedEdge< N, Hash, Equal >, AdjContainer > DirectedGraph
Simple Directed Graph type.
Definition Graph.hpp:31
graph::__impl::BaseGraph< UndirectedEdge< N, Hash, Equal >, AdjContainer > UndirectedGraph
Simple Undirected Graph type.
Definition Graph.hpp:20