GraphDom
Loading...
Searching...
No Matches
labeled_undirected_edge_endpoint.h
1/*
2 * Copyright 2026 Michele Comparini
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef GRAPHDOM_LABELED_UNDIRECTED_EDGE_ENDPOINT_IMPL_H
8#define GRAPHDOM_LABELED_UNDIRECTED_EDGE_ENDPOINT_IMPL_H
9
10#include "../../graph.h"
11#include "../edge_endpoint.h"
12#include "../labeled_undirected_edge_endpoint.h"
13
14template <typename VertexType>
15template <typename VertexContainerPointerType, typename EdgeLabelType>
17labeled_undirected_edge_endpoint(const VertexContainerPointerType ptr, const EdgeLabelType& edge) :
18 edge_endpoint<VertexContainerPointerType>(ptr),
19 edge_label_ptr(std::make_shared<EdgeLabelType>(edge)) {}
20
21template <typename VertexType>
22template <typename VertexContainerPointerType, typename EdgeLabelType>
24labeled_undirected_edge_endpoint(const VertexContainerPointerType ptr, EdgeLabelType&& edge) :
25 edge_endpoint<VertexContainerPointerType>(ptr),
26 edge_label_ptr(std::make_shared<EdgeLabelType>(std::move(edge))) {}
27
28template <typename VertexType>
29template <typename VertexContainerPointerType, typename EdgeLabelType>
31labeled_undirected_edge_endpoint(const VertexContainerPointerType ptr, const std::shared_ptr<EdgeLabelType>& existent_edge_label_ptr) :
32 edge_endpoint<VertexContainerPointerType>(ptr),
33 edge_label_ptr(existent_edge_label_ptr) {}
34
35#endif //GRAPHDOM_LABELED_UNDIRECTED_EDGE_ENDPOINT_IMPL_H
Every graph created using this library is an instance of a concrete class publicly derived,...
Definition graph.h:43