Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::MoTreeGraph Concept Reference

Concept constraining a graph type usable for Mo on Trees. More...

#include <tpl_mo_on_trees.H>

Concept definition

template<typename GT>
concept Aleph::MoTreeGraph = requires(const GT & g,
typename GT::Node * p,
typename GT::Arc * a)
{
typename GT::Node;
typename GT::Arc;
typename GT::Node_Arc_Iterator;
{ g.vsize() } -> std::convertible_to<size_t>;
{ g.get_connected_node(a, p) } -> std::same_as<typename GT::Node *>;
{ typename GT::Node_Arc_Iterator(p) };
{ g.for_each_node([](typename GT::Node *) {}) };
}
typename Node::Node_Type Node_Type
The arc class type.
Definition tpl_graph.H:436
Node * get_connected_node(Arc *arc, Node *node) const noexcept
Return the adjacent node to node through arc.
Definition graph-dry.H:778
constexpr size_t vsize() const noexcept
Definition graph-dry.H:704
void for_each_node(Operation &operation) const
Unconditionally traverse all the nodes of graph and on each one perform an operation.
Definition graph-dry.H:1482
Concept constraining a graph type usable for Mo on Trees.

Detailed Description

Concept constraining a graph type usable for Mo on Trees.

Requires node/arc types, a method to query the number of nodes, a method to obtain the connected node of an arc, and a node-iteration facility via for_each_node.

Template Parameters
GTGraph type.

Definition at line 116 of file tpl_mo_on_trees.H.