55#ifndef GUM_GRAPH_CONCEPTS_H
56#define GUM_GRAPH_CONCEPTS_H
73 template <
typename T >
75 { g.existsNode(
id) } -> std::convertible_to< bool >;
76 { g.size() } -> std::convertible_to< Size >;
77 { g.empty() } -> std::convertible_to< bool >;
86 template <
typename T >
88 { g.existsArc(u, v) } -> std::convertible_to< bool >;
89 { g.parents(u) } -> std::convertible_to< const NodeSet& >;
90 { g.children(u) } -> std::convertible_to< const NodeSet& >;
99 template <
typename T >
101 { g.existsEdge(u, v) } -> std::convertible_to< bool >;
102 { g.neighbours(u) } -> std::convertible_to< const NodeSet& >;
111 template <
typename T >
Concept for directed graphs (arcs with parents/children).
Concept for mixed graphs (both arcs and edges).
Concept for any graph that exposes node-level queries.
Concept for undirected graphs (edges with neighbours).
some utils for topology : NodeId, Edge, Arc and consorts ...
Size NodeId
Type for node ids.
gum is the global namespace for all aGrUM entities