18 #if !defined(__FLECSI_PRIVATE__) 19 #error Do not include this file directly! 36 enum single_space { elements };
39 template<
template<
class>
class>
42 inline std::size_t next_id;
47 static auto ret = next_id++;
51 template<
class,
class =
void>
53 using type = single_space;
57 struct index_space<T, util::voided<typename T::index_space>> {
58 using type =
typename T::index_space;
63 template<
class T,
class =
void>
69 static constexpr
auto value = T::default_space;
73 template<
template<
class>
class T>
79 return detail::id<std::remove_cv_t<T>>();
82 template<
class,
class =
void>
83 inline constexpr std::size_t index_spaces = 1;
86 inline constexpr std::size_t
87 index_spaces<T, decltype(void(T::core::index_spaces))> =
88 T::core::index_spaces;
91 using index_space_t =
typename detail::index_space<typename T::core>::type;
95 template<
class T, index_space_t<T> S,
class = const std::
size_t>
97 template<
class T, index_space_t<T> S>
98 inline constexpr std::size_t
99 privilege_count<T, S, decltype(T::core::template privilege_count<S>)> =
100 T::core::template privilege_count<S>;
109 template<
template<
class>
class C,
class D,
template<
class>
class I = identity>
112 using base = base_t<C>;
114 using coloring =
typename base::coloring;
116 using interface = I<B>;
Definition: coloring.hh:30
Definition: topology_accessor.hh:39
constexpr size_t privilege_pack
Definition: privilege.hh:62
partition_privilege_t
Definition: privilege.hh:44
Definition: topology_slot.hh:30
constexpr size_t privilege_count(std::size_t PACK)
Definition: privilege.hh:76
Definition: control.hh:31