10 template <
typename Context, index_t Start = 0, index_t Step = 1>
14 template <
typename Unique>
17 return next<Unique>(0) * Step + Start;
20 template <
unsigned long long>
26 return next<Unique>(0) * Step + Start;
29 template <
typename Unique>
32 return current<Unique>(0) * Step + Start;
35 template <
unsigned long long>
41 return current<Unique>(0) * Step + Start;
48 _Pragma(
"GCC diagnostic push");
49 _Pragma(
"GCC diagnostic ignored \"-Wundefined-internal\"");
50 friend constexpr
bool slot_allocated(slot<I>);
51 _Pragma(
"GCC diagnostic pop");
57 friend constexpr
bool slot_allocated(slot<I>) {
return true; }
66 template <typename Unique, index_t I = 0, bool = slot_allocated(slot<I>())>
69 return next<Unique, I + 1>(0);
74 template <
typename Unique, index_t I = 0>
82 template <typename Unique, index_t I = Start, bool = slot_allocated(slot<I>())>
85 return current<Unique, I + 1>(0);
90 template <
typename Unique, index_t I = Start>
93 static_assert(I != 0,
"You must invoke next() first");
106 _Pragma("clang diagnostic push") \
107 _Pragma("clang diagnostic ignored \"-Wpre-c2y-compat\"") \
108 _Pragma("clang diagnostic ignored \"-Wc2y-extensions\"") \
109 ck_tile::static_counter<ck_tile::impl::static_counter_uniq_<__COUNTER__>>{} \
110 _Pragma("clang diagnostic pop")
111 #define MAKE_SC_WITH(start_, step_) \
112 _Pragma("clang diagnostic push") \
113 _Pragma("clang diagnostic ignored \"-Wpre-c2y-compat\"") \
114 _Pragma("clang diagnostic ignored \"-Wc2y-extensions\"") ck_tile:: \
115 static_counter<ck_tile::impl::static_counter_uniq_<__COUNTER__>, start_, step_>{} \
116 _Pragma("clang diagnostic pop")
117 #define NEXT_SC(c_) \
118 _Pragma("clang diagnostic push") \
119 _Pragma("clang diagnostic ignored \"-Wpre-c2y-compat\"") \
120 _Pragma("clang diagnostic ignored \"-Wc2y-extensions\"") c_.next<__COUNTER__>() \
121 _Pragma("clang diagnostic pop")
122 #define NEXT_SCI(c_, static_i_) \
123 _Pragma("clang diagnostic push") \
124 _Pragma("clang diagnostic ignored \"-Wpre-c2y-compat\"") \
125 _Pragma("clang diagnostic ignored \"-Wc2y-extensions\"") \
126 c_.next<__COUNTER__ + static_i_>() _Pragma("clang diagnostic pop")
Definition: cluster_descriptor.hpp:13
int32_t index_t
Definition: integer.hpp:9
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1697
Definition: static_counter.hpp:101
Definition: static_counter.hpp:12
static constexpr index_t current()
Definition: static_counter.hpp:30
static constexpr index_t next()
Definition: static_counter.hpp:15