kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Log | Files | Refs | README

commit d03383a46cdfb1eac9b1a7c27c1b697603546392
parent a94f01f6c74dc7eaa5875fac4eab0e0e5718f19e
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Fri, 31 Mar 2017 22:51:49 +0300

CoMeta: is_sequence function

Diffstat:
Minclude/kfr/cometa.hpp | 21+++++++++++++++++++++
1 file changed, 21 insertions(+), 0 deletions(-)

diff --git a/include/kfr/cometa.hpp b/include/kfr/cometa.hpp @@ -1630,6 +1630,27 @@ CMT_INLINE constexpr static T implicit_cast(U&& value) return std::forward<T>(value); } +namespace details +{ +template <size_t start, size_t count> +constexpr std::true_type test_sequence(csizeseq_t<count, start>) +{ + return {}; +} + +template <size_t, size_t> +constexpr std::false_type test_sequence(...) +{ + return {}; +} +} + +template <size_t number, size_t... numbers> +constexpr bool is_sequence(csizes_t<number, numbers...>) +{ + return details::test_sequence<number, 1 + sizeof...(numbers)>(csizes_t<number, numbers...>()).value; +} + #ifdef CMT_COMPILER_GNU template <typename T, T val>