21 #include <type_traits> 38 template <
class T,
T... xs>
46 template <
class T, T start, T n,
class Enable =
void>
49 template <
class T, T start, T n>
56 template <
class T, T start, T n>
69 std::size_t
start = 0,
86 template <std::size_t... Ns>
106 std::size_t start = 0,
116 template <
class T,
class U>
119 std::forward<U>(cdr))) {
120 return std::tuple_cat(
auto tupleRange(T &&v) -> decltype(detail::TupleSelect< Seq >::select(std::forward< T >(v)))
static auto select(T &&v) -> decltype(std::make_tuple(std::get< Ns >(std::forward< T >(v))...))
—— Concurrent Priority Queue Implementation ——
constexpr auto size(C const &c) -> decltype(c.size())
auto tuplePrepend(T &&car, U &&cdr) -> decltype(std::tuple_cat(std::make_tuple(std::forward< T >(car)), std::forward< U >(cdr)))
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)
typename TemplateRange< std::size_t, start,(n<=size-start?n:size-start)>::type type
typename TemplateRange< T, start+1, n-1 >::type::template Prepend< start > type
TemplateSeq< T, x, xs... > Prepend