GraphDom
Loading...
Searching...
No Matches
edge_endpoint.h
1/*
2 * Copyright 2026 Michele Comparini
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef GRAPHDOM_EDGE_ENDPOINT_H
8#define GRAPHDOM_EDGE_ENDPOINT_H
9
10#include <type_traits>
11
12#include "../graph.h"
13#include "vertex_container.h"
14
15namespace graphdom {
16 template <typename VertexType>
17 template <typename VertexContainerPointerType>
18 class graph<VertexType>::edge_endpoint {
19 public:
20 static_assert(
21 std::is_same< VertexContainerPointerType , graphdom::graph<VertexType>::vertex_container* >::value ||
22 std::is_same< VertexContainerPointerType , const graphdom::graph<VertexType>::vertex_container* >::value
23 ,
24 "The typename 'VertexContainerPointerType' of 'graphdom::graph<VertexType>::edge_endpoint<VertexContainerPointerType>' class must be a pointer to graphdom::graph<VertexType>::vertex_container"
25 );
26
27 edge_endpoint() = delete;
28 edge_endpoint(const edge_endpoint&) = delete;
29 edge_endpoint(edge_endpoint&&) = delete;
30 explicit edge_endpoint(VertexContainerPointerType ptr);
31
32 ~edge_endpoint() = default;
33
34 VertexContainerPointerType vertex_container_ptr;
35 };
36}
37
38#include "impl/edge_endpoint.h"
39
40#endif //GRAPHDOM_EDGE_ENDPOINT_H
Every graph created using this library is an instance of a concrete class publicly derived,...
Definition graph.h:43
Definition adj_list.h:16