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 bfd1b8cd4086e3b10cdd55185fe55e5d00774b31
parent 7568554cc4d81e78a992ccd2305fae1f0d6b2821
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Mon, 29 Aug 2016 05:47:46 +0300

cforeach: faster implementation

Diffstat:
Minclude/kfr/cometa.hpp | 12+++---------
1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/include/kfr/cometa.hpp b/include/kfr/cometa.hpp @@ -1183,16 +1183,10 @@ using has_data_size = details::has_data_size_impl<decay<T>>; template <typename T> using value_type_of = typename decay<T>::value_type; -template <typename T, typename Fn> -CMT_INTRIN void cforeach(cvals_t<T>, Fn&&) +template <typename T, T... values, typename Fn> +CMT_INTRIN void cforeach(cvals_t<T, values...>, Fn&& fn) { -} - -template <typename T, T v0, T... values, typename Fn> -CMT_INTRIN void cforeach(cvals_t<T, v0, values...>, Fn&& fn) -{ - fn(cval<T, v0>); - cforeach(cvals_t<T, values...>(), std::forward<Fn>(fn)); + swallow{ (fn(cval<T, values>), void(), 0)... }; } template <typename T, typename Fn, CMT_ENABLE_IF(has_begin_end<T>::value)>