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)};
26 {constContainer.contains(constNodeRef)} -> std::convertible_to<bool>;
27 {constContainer.hasAdjacency(constNodeRef,constNodeRef)} -> std::convertible_to<bool>;
31 typename C::hash_function;
32 typename C::equality_predicate;
33 typename C::node_type;