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 92037e8372c63cdb28182e2296b12f6c7ee88699
parent 36f6562cbff550d18d823a9499e4638ba7f36969
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Thu,  8 Sep 2016 18:34:30 +0300

New implementation for sequence

Diffstat:
Minclude/kfr/base/basic_expressions.hpp | 10+++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/include/kfr/base/basic_expressions.hpp b/include/kfr/base/basic_expressions.hpp @@ -89,12 +89,12 @@ CMT_INLINE internal::expression_iterator<T, E1> to_iterator(E1&& e1) return internal::expression_iterator<T, E1>(std::forward<E1>(e1)); } -template <typename T, typename... Ts> -CMT_INLINE auto sequence(T x, Ts... rest) +template <typename... Ts, typename T = common_type<Ts...>> +inline auto sequence(const Ts&... list) { - const T seq[] = { x, static_cast<T>(rest)... }; - constexpr size_t N = arraysize(seq); - return lambda<T>([=](size_t index) { return seq[index % N]; }); + return lambda<T>([seq = std::array<T, sizeof...(Ts)>{ static_cast<T>(list)... }](size_t index) { + return seq[index % seq.size()]; + }); } template <typename T = int>