Skip to content

Commit 545add4

Browse files
committed
Apply template recursively
1 parent 4ffb67e commit 545add4

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

include/xsimd/arch/xsimd_neon.hpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@
2626
#include "./common/xsimd_common_cast.hpp"
2727
#include "./xsimd_common_fwd.hpp"
2828

29-
#define WRAP_BINARY_IMPL(OP, VEC, RT) \
30-
namespace wrap \
31-
{ \
32-
XSIMD_INLINE auto(x_##OP)(VEC a, VEC b) noexcept -> RT<VEC> \
33-
{ \
34-
return ::OP(a, b); \
35-
} \
29+
#define APPLY_TEMPLATE(T, X) T<X>
30+
31+
#define WRAP_BINARY_IMPL(OP, VEC, RT) \
32+
namespace wrap \
33+
{ \
34+
XSIMD_INLINE auto(x_##OP)(VEC a, VEC b) noexcept -> APPLY_TEMPLATE(RT, VEC) \
35+
{ \
36+
return ::OP(a, b); \
37+
} \
3638
}
3739

3840
#define WRAP_BINARY_UINT_EXCLUDING_64(OP_U8, OP_U16, OP_U32, RT) \
@@ -3491,5 +3493,6 @@ namespace xsimd
34913493
#undef WRAP_UNARY_INT_EXCLUDING_64
34923494
#undef WRAP_UNARY_INT
34933495
#undef WRAP_UNARY_FLOAT
3496+
#undef APPLY_TEMPLATE
34943497

34953498
#endif

0 commit comments

Comments
 (0)