Elements¶
#include<hysj/graphs/elements.hpp>
In namespace graphs
:
-
enum class element_tag¶
-
enumerator vertex¶
-
enumerator edge¶
Names the elements of a graph, vertices and edges.-
enumerator vertex¶
-
auto direction(const auto &graph, auto id)¶
- Hook for computing the direction of an edge.
-
auto element_ids(auto element_tag, const auto &graph)¶
- Hook for computing the element ids of a graph.
Shorthands
-
unspecified vertex_ids = bind(element_ids, vertex_tag)¶
-
unspecified edge_ids = bind(element_ids, edge_tag)¶
-
auto element_count(auto element_tag, const auto &graph)¶
- Hook for computing the number of elements in a graph.
Shorthands
-
unspecified order = bind(element_count, in_tag)¶
-
unspecified size = bind(element_count, out_tag)¶
-
auto swap(auto element_tag, const auto &graph, auto id0, auto id1)¶
-
template<typename G, element_tag T>
struct traits::element_id_trait¶
-
template<typename G, element_tag T>
using traits::element_id¶ - Trait for computing the id-type of a given element-type.
-
template<typename G, element_tag T>
concept concepts::elements¶ -
- Let
- Requires
typename traits::element_id<G, T> graphs::element_ids(constant_t<T>{}, g) graphs::element_count(constant_t<T>{}, g)
Builtin¶
#include<hysj/graphs/builtin/element_ids.hpp>
In namespace builtin
:
-
template<element_tag T>
struct basic_element_id¶ -
static constexpr auto tag = constant_c<T>¶
Implements a basic element id.-
static constexpr auto tag = constant_c<T>¶
Shorthands
-
using vertex_id = basic_element_id<element_tag::vertex>¶
-
using edge_id = basic_element_id<element_tag::edge>¶
-
struct dynamically_directed_edge_id¶
-
-
direction_tag direction¶
-
direction_tag direction¶
-
template<direction_tag direction>
struct statically_directed_edge_id¶ -