Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
AdjacencyContainer.hpp
Go to the documentation of this file.
1#pragma once
2#include <concepts>
4namespace fishnet::graph{
11template<class C, typename N = typename C::node_type>
12concept AdjacencyContainer= requires (C & container, const C & constContainer, N & nodeRef, const N & constNodeRef, N && nodeRval, std::vector<N> nodes, std::vector<std::pair<N,N>> adjacencies){
13 {container.addAdjacency(constNodeRef,constNodeRef)};
14 {container.addAdjacency(nodeRef,nodeRef)};
15 {container.addAdjacency(nodeRval,nodeRval)};
16 {container.addAdjacencies(adjacencies)};
17 {container.addNode(nodeRef)} -> std::convertible_to<bool>;
18 {container.addNode(nodeRval)} -> std::convertible_to<bool>;
19 {container.addNode(constNodeRef)} -> std::convertible_to<bool>;
20 {container.addNodes(nodes)} -> std::convertible_to<bool>;
21 {container.removeNode(constNodeRef)};
22 {container.removeNodes(nodes)};
23 {container.removeAdjacency(constNodeRef,constNodeRef)};
24 {container.removeAdjacencies(adjacencies)};
25 {container.clear()};
26 {constContainer.contains(constNodeRef)} -> std::convertible_to<bool>;
27 {constContainer.hasAdjacency(constNodeRef,constNodeRef)} -> std::convertible_to<bool>;
28 {constContainer.adjacency(constNodeRef)} -> util::forward_range_of<const N>;
29 {constContainer.nodes()} -> util::forward_range_of<const N>;
30 {constContainer.getAdjacencyPairs()} -> util::input_range_of<std::pair<const N,const N>>;
31 typename C::hash_function;
32 typename C::equality_predicate;
33 typename C::node_type;
34} ;
35}
Interface for an AdjacencyContainer.
Definition AdjacencyContainer.hpp:12
Definition CollectionConcepts.hpp:27
Definition CollectionConcepts.hpp:33
Definition AdjacencyContainer.hpp:4