1#ifndef GENERATOR_UTILS_HPP
2#define GENERATOR_UTILS_HPP
10template<
typename generator_t,
typename =
void>
17template<
typename generator_t>
18struct generated_type<generator_t,
std::void_t<decltype(std::declval<const generator_t>().generate())>>
20 using type =
decltype(std::declval<const generator_t>().generate());
25template<
typename primitive_t,
typename =
void>
32template<
typename primitive_t>
35 using type =
decltype(std::declval<const primitive_t>().edges());
40template<
typename primitive_t,
typename =
void>
47template<
typename primitive_t>
50 using type =
decltype(std::declval<const primitive_t>().triangles());
55template<
typename primitive_t,
typename =
void>
62template<
typename primitive_t>
65 using type =
decltype(std::declval<const primitive_t>().vertices());
69template<
typename generator_t>
int count(const generator_t &generator) noexcept
Counts the number of steps left in the generator.
Hash specialization for batch_key to enable use in std::unordered_map.
decltype(std::declval< const primitive_t >().edges()) type
decltype(std::declval< const generator_t >().generate()) type
decltype(std::declval< const primitive_t >().triangles()) type
decltype(std::declval< const primitive_t >().vertices()) type