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 aedee8382a5419f07ea1bbe87b4924f02ba6b019
parent 300566d58a5da6f93247089086ae1d57f45e0069
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Wed, 27 Jul 2016 14:48:59 +0300

pack now is an alias for make_vector

Diffstat:
Minclude/kfr/base/vec.hpp | 11++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/include/kfr/base/vec.hpp b/include/kfr/base/vec.hpp @@ -551,6 +551,15 @@ constexpr KFR_INLINE vec<T, N> make_vector(cvals_t<T, Values...>) } KFR_FN(make_vector) +template <typename Type = void, typename Arg, typename... Args, size_t N = (sizeof...(Args) + 1), + typename SubType = conditional<is_void<Type>::value, common_type<Arg, Args...>, Type>> +constexpr KFR_INLINE vec<SubType, N> pack(const Arg& x, const Args&... rest) +{ + return internal::make_vector_impl<SubType>(csizeseq<N * widthof<SubType>()>, static_cast<SubType>(x), + static_cast<SubType>(rest)...); +} +KFR_FN(pack) + template <typename T, size_t N> struct vec : vec_t<T, N> { @@ -650,7 +659,7 @@ struct vec : vec_t<T, N> KFR_INLINE array_t arr() { return ref_cast<array_t>(v); } template <typename U, KFR_ENABLE_IF(std::is_convertible<T, U>::value)> - constexpr operator vec<U, N>() noexcept + constexpr operator vec<U, N>() const noexcept { return cast<U>(*this); }