|
4 | 4 |
|
5 | 5 | #pragma once |
6 | 6 |
|
| 7 | +#include "directional_tags.hpp" |
7 | 8 | #include "hypergraph_elements.hpp" |
8 | 9 | #include "impl/impl_tags.hpp" |
9 | 10 |
|
10 | 11 | namespace hgl { |
11 | 12 |
|
12 | 13 | template < |
13 | | - type_traits::c_hypergraph_directional_tag HyperedgeDirectionalTag = undirected_t, |
| 14 | + type_traits::c_hypergraph_directional_tag DirectionalTag = undirected_t, |
14 | 15 | type_traits::c_properties VertexProperties = types::empty_properties, |
15 | 16 | type_traits::c_properties HyperedgeProperties = types::empty_properties, |
16 | 17 | type_traits::c_hypergraph_impl_tag ImplTag = impl::hyperedge_list_t> |
17 | 18 | struct hypergraph_traits { |
18 | 19 | using vertex_type = vertex_descriptor<VertexProperties>; |
19 | 20 | using vertex_properties_type = typename vertex_type::properties_type; |
20 | 21 |
|
21 | | - using hyperedge_type = hyperedge_descriptor<HyperedgeDirectionalTag, HyperedgeProperties>; |
22 | | - using hyperedge_directional_tag = typename hyperedge_type::directional_tag; |
| 22 | + using hyperedge_type = hyperedge_descriptor<HyperedgeProperties>; |
23 | 23 | using hyperedge_properties_type = typename hyperedge_type::properties_type; |
24 | 24 |
|
| 25 | + using directional_tag = DirectionalTag; |
25 | 26 | using implementation_tag = ImplTag; |
26 | 27 | }; |
27 | 28 |
|
28 | 29 | template < |
29 | | - type_traits::c_hypergraph_directional_tag HyperedgeDirectionalTag = undirected_t, |
| 30 | + type_traits::c_hypergraph_directional_tag DirectionalTag = undirected_t, |
30 | 31 | type_traits::c_properties VertexProperties = types::empty_properties, |
31 | 32 | type_traits::c_properties HyperedgeProperties = types::empty_properties> |
32 | | -using hyperedge_list_hg_traits = hypergraph_traits< |
33 | | - HyperedgeDirectionalTag, |
34 | | - VertexProperties, |
35 | | - HyperedgeProperties, |
36 | | - impl::hyperedge_list_t>; |
| 33 | +using hyperedge_list_hg_traits = |
| 34 | + hypergraph_traits<DirectionalTag, VertexProperties, HyperedgeProperties, impl::hyperedge_list_t>; |
37 | 35 |
|
38 | 36 | template < |
39 | | - type_traits::c_hypergraph_directional_tag HyperedgeDirectionalTag = undirected_t, |
| 37 | + type_traits::c_hypergraph_directional_tag DirectionalTag = undirected_t, |
40 | 38 | type_traits::c_properties VertexProperties = types::empty_properties, |
41 | 39 | type_traits::c_properties HyperedgeProperties = types::empty_properties> |
42 | | -using adjacency_list_hg_traits = hypergraph_traits< |
43 | | - HyperedgeDirectionalTag, |
44 | | - VertexProperties, |
45 | | - HyperedgeProperties, |
46 | | - impl::adjacency_list_t>; |
| 40 | +using adjacency_list_hg_traits = |
| 41 | + hypergraph_traits<DirectionalTag, VertexProperties, HyperedgeProperties, impl::adjacency_list_t>; |
47 | 42 |
|
48 | 43 | template < |
49 | | - type_traits::c_hypergraph_directional_tag HyperedgeDirectionalTag = undirected_t, |
| 44 | + type_traits::c_hypergraph_directional_tag DirectionalTag = undirected_t, |
50 | 45 | type_traits::c_properties VertexProperties = types::empty_properties, |
51 | 46 | type_traits::c_properties HyperedgeProperties = types::empty_properties> |
52 | | -using incidence_matrix_hg_traits = hypergraph_traits< |
53 | | - HyperedgeDirectionalTag, |
54 | | - VertexProperties, |
55 | | - HyperedgeProperties, |
56 | | - impl::incidence_matrix_t>; |
| 47 | +using incidence_matrix_hg_traits = |
| 48 | + hypergraph_traits<DirectionalTag, VertexProperties, HyperedgeProperties, impl::incidence_matrix_t>; |
57 | 49 |
|
58 | 50 | template < |
59 | 51 | type_traits::c_properties VertexProperties = types::empty_properties, |
|
0 commit comments