GraphDom
Loading...
Searching...
No Matches
const_adj_list.h
1/*
2 * Copyright 2026 Michele Comparini
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef GRAPHDOM_CONST_ADJ_LIST_H
8#define GRAPHDOM_CONST_ADJ_LIST_H
9
10#include "../graph.h"
11#include "vertex_container.h"
12#include "base_adj_list.h"
13#include "adj_list.h"
14#include "../multiset_graph.h"
15#include "multiset_graph_adj_list.h"
16
17namespace graphdom {
34 template <typename VertexType>
35 class graph<VertexType>::const_adj_list : public graph<VertexType>::base_adj_list< const graph<VertexType>::vertex_container* > {
36 public:
37 const_adj_list() = delete;
38 const_adj_list(const const_adj_list& other);
39 const_adj_list(const graph<VertexType>::adj_list& other);
40 const_adj_list(const typename multiset_graph<VertexType>::adj_list& other);
41
42 ~const_adj_list() = default;
43
44 const_adj_list& operator=(const const_adj_list&) = delete;
45 const_adj_list& operator=(const_adj_list&&) = delete;
46
47 [[nodiscard]] graph<VertexType>::adj_list_const_iterator begin() const;
48 [[nodiscard]] graph<VertexType>::adj_list_const_iterator end() const;
49 [[nodiscard]] graph<VertexType>::adj_list_const_iterator cbegin() const;
50 [[nodiscard]] graph<VertexType>::adj_list_const_iterator cend() const;
51
53 friend class graph<VertexType>::vertex_handle;
54 friend class graph<VertexType>::vertex_const_handle;
55 friend class multiset_graph<VertexType>::vertex_handle;
57 private:
58 const_adj_list(
59 const graphdom::graph<VertexType>* adj_list_owner_graph_pointer,
60 graphdom::graph<VertexType>::graph_edges_type adj_list_owner_graph_edges_type,
61 const graphdom::graph<VertexType>::vertex_container* adj_list_common_begin_point_vertex_container_pointer,
62 typename graphdom::graph<VertexType>::edges_type_selection_type adj_list_edges_type_selection = none
63 );
64 };
65}
66
67#include "impl/const_adj_list.h"
68
69#endif //GRAPHDOM_CONST_ADJ_LIST_H
Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set...
Definition adj_list.h:32
Every valid instance of this class can be used to identify a specific vertex of a graph and to access...
Definition vertex_const_handle.h:35
Every valid instance of this class can be used to identify a specific vertex of a graph and to access...
Definition vertex_handle.h:32
Every graph created using this library is an instance of a concrete class publicly derived,...
Definition graph.h:43
Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set...
Definition multiset_graph_adj_list.h:31
Every multiset graph created using this library is an instance of a concrete class publicly derived,...
Definition multiset_graph.h:19
Definition adj_list.h:16