35#ifndef _BLAZE_UTIL_INTEGERSEQUENCE_H_
36#define _BLAZE_UTIL_INTEGERSEQUENCE_H_
60using std::integer_sequence;
69using std::index_sequence;
78using std::make_integer_sequence;
87using std::make_index_sequence;
107template<
size_t... I1s,
size_t... I2s >
108constexpr bool operator==( index_sequence<I1s...> lhs, index_sequence<I2s...> rhs )
noexcept
126template<
size_t... I1s >
145template<
size_t... I1s,
size_t... I2s >
146constexpr bool operator!=( index_sequence<I1s...> lhs, index_sequence<I2s...> rhs )
noexcept
150 return !( lhs == rhs );
171template<
size_t Offset
173constexpr decltype(
auto) shift( std::index_sequence<Is...> sequence )
177 return std::index_sequence< ( Is + Offset )... >();
191template<
size_t... Is1
193constexpr decltype(
auto) subsequence( std::index_sequence<Is2...> sequence )
197 constexpr size_t indices[] = { Is2... };
198 return std::index_sequence< indices[Is1]... >();
225template<
size_t Offset
244template<
size_t Offset
248 decltype( subsequence<Is...>( shift<Offset>( make_index_sequence<N>() ) ) );
Header file for the MAYBE_UNUSED function template.
Index sequence type of the Blaze library.
constexpr bool operator!=(index_sequence< I1s... > lhs, index_sequence< I2s... > rhs) noexcept
Inequality operator for the comparison of two index sequences.
Definition: IntegerSequence.h:146
constexpr bool operator==(index_sequence< I1s... > lhs, index_sequence< I2s... > rhs) noexcept
Equality operator for the comparison of two index sequences.
Definition: IntegerSequence.h:108
constexpr void MAYBE_UNUSED(const Args &...)
Suppression of unused parameter warnings.
Definition: MaybeUnused.h:81
decltype(subsequence< Is... >(shift< Offset >(make_index_sequence< N >()))) make_shifted_index_subsequence
Auxiliary alias declaration for the setup of shifted index subsequences.
Definition: IntegerSequence.h:248
decltype(shift< Offset >(make_index_sequence< N >())) make_shifted_index_sequence
Auxiliary alias declaration for the setup of shifted index sequences.
Definition: IntegerSequence.h:227