commit 606900af580d60d00c3fd507a6f9dc6225a39edb
parent ff058a39a42e886b8db71677d735c37621d70f14
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date: Tue, 26 Jul 2016 15:52:14 +0300
vec.hpp: decay instead of remove_reference
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/kfr/base/vec.hpp b/include/kfr/base/vec.hpp
@@ -1075,14 +1075,14 @@ struct maxvec
};
template <size_t Index, typename T, size_t N, typename Fn, typename... Args,
- typename Tout = result_of<Fn(subtype<remove_reference<Args>>...)>>
+ typename Tout = result_of<Fn(subtype<decay<Args>>...)>>
constexpr KFR_INLINE Tout applyfn_helper(Fn&& fn, Args&&... args)
{
return fn(args[Index]...);
}
template <typename T, size_t N, typename Fn, typename... Args,
- typename Tout = result_of<Fn(subtype<remove_reference<Args>>...)>, size_t... Indices>
+ typename Tout = result_of<Fn(subtype<decay<Args>>...)>, size_t... Indices>
constexpr KFR_INLINE vec<Tout, N> apply_helper(Fn&& fn, csizes_t<Indices...>, Args&&... args)
{
return make_vector(applyfn_helper<Indices, T, N>(std::forward<Fn>(fn), std::forward<Args>(args)...)...);
@@ -1095,7 +1095,7 @@ constexpr KFR_INLINE vec<T, N> apply0_helper(Fn&& fn, csizes_t<Indices...>)
}
template <typename T, size_t N, typename Fn, typename... Args,
- typename Tout = result_of<Fn(T, subtype<remove_reference<Args>>...)>>
+ typename Tout = result_of<Fn(T, subtype<decay<Args>>...)>>
constexpr KFR_INLINE vec<Tout, N> apply(Fn&& fn, vec<T, N> arg, Args&&... args)
{
return internal::apply_helper<T, N>(std::forward<Fn>(fn), csizeseq<N>, arg, std::forward<Args>(args)...);