15template<
class AdjDelegate>
18 using N =
typename AdjDelegate::node_type;
31 delegate.addAdjacency(from, to);
35 delegate.addAdjacency(std::move(from), std::move(to));
39 delegate.addAdjacencies(std::forward<
decltype(pairs)>(pairs));
43 return delegate.addNode(node);
47 return delegate.addNode(std::move(node));
51 return delegate.addNodes(std::forward<
decltype(
nodes)>(
nodes));
55 delegate.removeNode(node);
59 delegate.removeNodes(std::forward<
decltype(
nodes)>(
nodes));
63 delegate.removeAdjacency(from,to);
67 delegate.removeAdjacencies(std::forward<
decltype(pairs)>(pairs));
71 return delegate.contains(node);
75 return delegate.hasAdjacency(from,to);
79 return delegate.adjacency(node);
83 return delegate.nodes();
87 return delegate.getAdjacencyPairs();
A decorator for adjacency containers that adds additional functionality.
Definition AdjacencyContainerDecorator.hpp:16
typename AdjDelegate::equality_predicate equality_predicate
Definition AdjacencyContainerDecorator.hpp:23
bool addNode(N &&node)
Definition AdjacencyContainerDecorator.hpp:46
bool contains(const N &node) const noexcept
Definition AdjacencyContainerDecorator.hpp:70
void addAdjacency(N &&from, N &&to)
Definition AdjacencyContainerDecorator.hpp:34
auto getAdjacencyPairs() const noexcept
Definition AdjacencyContainerDecorator.hpp:86
auto nodes() const noexcept
Definition AdjacencyContainerDecorator.hpp:82
bool addNodes(util::forward_range_of< N > auto &&nodes)
Definition AdjacencyContainerDecorator.hpp:50
void removeAdjacency(const N &from, const N &to)
Definition AdjacencyContainerDecorator.hpp:62
typename AdjDelegate::node_type node_type
Definition AdjacencyContainerDecorator.hpp:22
auto adjacency(const N &node) const noexcept
Definition AdjacencyContainerDecorator.hpp:78
void addAdjacencies(util::forward_range_of< std::pair< N, N > > auto &&pairs)
Definition AdjacencyContainerDecorator.hpp:38
void addAdjacency(const N &from, const N &to)
Definition AdjacencyContainerDecorator.hpp:30
void removeAdjacencies(util::forward_range_of< std::pair< N, N > > auto &&pairs)
Definition AdjacencyContainerDecorator.hpp:66
bool addNode(const N &node)
Definition AdjacencyContainerDecorator.hpp:42
void removeNode(const N &node)
Definition AdjacencyContainerDecorator.hpp:54
AdjacencyContainerDecorator(AdjDelegate &&delegate)
Definition AdjacencyContainerDecorator.hpp:28
bool hasAdjacency(const N &from, const N &to) const noexcept
Definition AdjacencyContainerDecorator.hpp:74
void clear() noexcept
Definition AdjacencyContainerDecorator.hpp:90
AdjacencyContainerDecorator(const AdjDelegate &delegate)
Definition AdjacencyContainerDecorator.hpp:26
void removeNodes(util::forward_range_of< N > auto &&nodes)
Definition AdjacencyContainerDecorator.hpp:58
typename AdjDelegate::hash_function hash_function
Definition AdjacencyContainerDecorator.hpp:24
Interface for an AdjacencyContainer.
Definition AdjacencyContainer.hpp:12
Definition CollectionConcepts.hpp:27
Definition AdjacencyContainer.hpp:4