46 typename RemoveRef<T>::EdgeType e,
47 typename RemoveRef<T>::EdgeType* eP,
48 typename RemoveRef<T>::EdgeType& eR,
49 typename RemoveRef<T>::EdgeType::VertexType* vP,
50 std::vector<uint> vec) {
51 typename RemoveRef<T>::EdgeType;
52 typename RemoveRef<T>::EdgeIterator;
53 typename RemoveRef<T>::ConstEdgeIterator;
55 { obj.edge(uint()) } -> std::convertible_to<
decltype(e)>;
56 { obj.edgeNumber() } -> std::same_as<uint>;
57 { obj.edgeContainerSize() } -> std::same_as<uint>;
58 { obj.deletedEdgeNumber() } -> std::same_as<uint>;
60 { obj.edgeIndexIfCompact(uint()) } -> std::same_as<uint>;
61 { obj.edgeCompactIndices() } -> std::same_as<
decltype(vec)>;
66 { obj.edges(
bool()) } ->
InputRange<
decltype(e)>;
70 { obj.edge(uint()) } -> std::same_as<
decltype(eR)>;
72 { obj.addEdge() } -> std::same_as<uint>;
73 { obj.addEdge(uint(), uint()) } -> std::same_as<uint>;
74 { obj.addEdge(vP, vP) } -> std::same_as<uint>;
75 { obj.addEdges(uint()) } -> std::same_as<uint>;
76 { obj.clearEdges() } -> std::same_as<void>;
77 { obj.resizeEdges(uint()) } -> std::same_as<void>;
78 { obj.reserveEdges(uint()) } -> std::same_as<void>;
79 { obj.compactEdges() } -> std::same_as<void>;
80 { obj.deleteEdge(uint()) } -> std::same_as<void>;
81 { obj.deleteEdge(eP) } -> std::same_as<void>;
82 { obj.updateEdgeIndices(vec) } -> std::same_as<void>;
90 { obj.enableAllPerEdgeOptionalComponents() } -> std::same_as<void>;
91 { obj.disableAllPerEdgeOptionalComponents() } -> std::same_as<void>;