35 class full_labeled_set_digraph final :
36 virtual public labeled_vertex_set_graph<VertexType,VertexLabelType,VertexLabellerType>,
37 virtual public labeled_edge_non_mixed_graph<VertexType,EdgeLabelType,EdgeLabellerType> {
39 full_labeled_set_digraph() =
default;
40 full_labeled_set_digraph(
const Compare& v_comp,
const VertexLabellerType& v_lab,
const EdgeLabellerType& e_lab);
41 full_labeled_set_digraph(
const Compare& v_comp,
const VertexLabellerType& v_lab, EdgeLabellerType&& e_lab = EdgeLabellerType());
42 full_labeled_set_digraph(
const Compare& v_comp, VertexLabellerType&& v_lab,
const EdgeLabellerType& e_lab);
43 explicit full_labeled_set_digraph(
const Compare& v_comp, VertexLabellerType&& v_lab = VertexLabellerType(), EdgeLabellerType&& e_lab = EdgeLabellerType());
44 full_labeled_set_digraph(Compare&& v_comp,
const VertexLabellerType& v_lab,
const EdgeLabellerType& e_lab);
45 full_labeled_set_digraph(Compare&& v_comp,
const VertexLabellerType& v_lab, EdgeLabellerType&& e_lab = EdgeLabellerType());
46 full_labeled_set_digraph(Compare&& v_comp, VertexLabellerType&& v_lab,
const EdgeLabellerType& e_lab);
47 explicit full_labeled_set_digraph(Compare&& v_comp, VertexLabellerType&& v_lab = VertexLabellerType(), EdgeLabellerType&& e_lab = EdgeLabellerType());
49 ~full_labeled_set_digraph()
override;
56 [[nodiscard]] std::size_t
order()
const override;
84 [[nodiscard]] std::pair<typename graph<VertexType>::vertex_handle,
bool>
insert_vertex(
const VertexType& v_core,
const VertexLabelType& vertex_label)
override;
90 [[nodiscard]] std::pair<typename graph<VertexType>::vertex_handle,
bool>
insert_vertex(
const VertexType& v_core, VertexLabelType&& vertex_label)
override;
96 [[nodiscard]] std::pair<typename graph<VertexType>::vertex_handle,
bool>
insert_vertex(VertexType&& v_core,
const VertexLabelType& vertex_label)
override;
102 [[nodiscard]] std::pair<typename graph<VertexType>::vertex_handle,
bool>
insert_vertex(VertexType&& v_core, VertexLabelType&& vertex_label)
override;
133 static void safe_edge_endpoint_deallocation(
typename graphdom::graph<VertexType>::template edge_endpoint<VertexContainerPointerType>*);
135 class custom_vertices_set_compare {
137 custom_vertices_set_compare() =
default;
138 explicit custom_vertices_set_compare(
const Compare& comp) : external_vertex_less_functor(comp){}
139 explicit custom_vertices_set_compare(Compare&& comp) : external_vertex_less_functor(std::move(comp)){}
141 bool constexpr operator()(
142 const vertex_container& left,
143 const vertex_container& right )
const {
144 return external_vertex_less_functor(left.vertex,right.vertex);
147 using is_transparent = void;
149 bool constexpr operator()(
150 const vertex_container& left,
151 const VertexType& right )
const {
152 return external_vertex_less_functor(left.vertex,right);
155 bool constexpr operator()(
156 const VertexType& left,
157 const vertex_container& right )
const {
158 return external_vertex_less_functor(left,right.vertex);
161 Compare external_vertex_less_functor;
166 custom_vertices_set_compare