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>
 
   77         return allocate_slot<I>::value;
 
   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");
 
  105     ck_tile::static_counter<ck_tile::impl::static_counter_uniq_<__COUNTER__>> {} 
  106 #define MAKE_SC_WITH(start_, step_) \ 
  107     ck_tile::static_counter<ck_tile::impl::static_counter_uniq_<__COUNTER__>, start_, step_> {} 
  108 #define NEXT_SC(c_) c_.next<__COUNTER__>() 
  109 #define NEXT_SCI(c_, static_i_) c_.next<__COUNTER__ + static_i_>() 
Definition: cluster_descriptor.hpp:13
 
int32_t index_t
Definition: integer.hpp:9
 
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