Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
fishnet::graph::AdjacencyContainer Concept Reference

Interface for an AdjacencyContainer. More...

#include <AdjacencyContainer.hpp>

Concept definition

template<class C, typename N typename C::node_type>
concept fishnet::graph::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){
{container.addAdjacency(constNodeRef,constNodeRef)};
{container.addAdjacency(nodeRef,nodeRef)};
{container.addAdjacency(nodeRval,nodeRval)};
{container.addAdjacencies(adjacencies)};
{container.addNode(nodeRef)} -> std::convertible_to<bool>;
{container.addNode(nodeRval)} -> std::convertible_to<bool>;
{container.addNode(constNodeRef)} -> std::convertible_to<bool>;
{container.addNodes(nodes)} -> std::convertible_to<bool>;
{container.removeNode(constNodeRef)};
{container.removeNodes(nodes)};
{container.removeAdjacency(constNodeRef,constNodeRef)};
{container.removeAdjacencies(adjacencies)};
{container.clear()};
{constContainer.contains(constNodeRef)} -> std::convertible_to<bool>;
{constContainer.hasAdjacency(constNodeRef,constNodeRef)} -> std::convertible_to<bool>;
{constContainer.adjacency(constNodeRef)} -> util::forward_range_of<const N>;
{constContainer.nodes()} -> util::forward_range_of<const N>;
{constContainer.getAdjacencyPairs()} -> util::input_range_of<std::pair<const N,const N>>;
typename C::hash_function;
typename C::equality_predicate;
typename C::node_type;
}
Interface for an AdjacencyContainer.
Definition AdjacencyContainer.hpp:12

Detailed Description

Interface for an AdjacencyContainer.

Template Parameters
Ccontainer implementation type
Nnode type stored in the container