22#ifndef LELY_LIBC_UTILITY_HPP_
23#define LELY_LIBC_UTILITY_HPP_
32#if __cplusplus >= 201402L
34using ::std::index_sequence;
35using ::std::index_sequence_for;
36using ::std::integer_sequence;
37using ::std::make_index_sequence;
38using ::std::make_integer_sequence;
43template <
typename T, T... Ints>
47 static constexpr ::std::size_t
49 return sizeof...(Ints);
55template <::std::size_t...>
58template <
class,
class>
61template <::std::size_t... I1, ::std::size_t... I2>
66template <::std::
size_t N>
69 typename make_index_tuple<N - N / 2>::type> {};
81template <class T, T N, class = typename make_index_tuple<N>::type>
84template <
typename T, T N, ::std::size_t... Ints>
86 static_assert(N >= 0,
"Cannot make integer sequence of negative length");
97template <::std::size_t... Ints>
104template <
typename T, T N>
112template <::std::
size_t N>
119template <
typename... T>
This header file is part of the Lely libraries; it contains the compiler feature definitions.
A compile-time sequence of integers.
make_index_sequence< sizeof...(T)> index_sequence_for
A helper alias template to convert any type parameter pack into an index sequence of the same length.
typename detail::make_integer_sequence< T, N >::type make_integer_sequence
A helper alias template to simplify the creation of lely::compat::integer_sequence types with 0,...
make_integer_sequence<::std::size_t, N > make_index_sequence
A helper alias template for make_integer_sequence for the common case where T is std::size_t.