diff --git a/src/c_wrapper/utils.h b/src/c_wrapper/utils.h index d500544c684e1bfd67e2ff654c683600a598da74..32c7beaf4130b1eebdae0e919f64a92fe36873a8 100644 --- a/src/c_wrapper/utils.h +++ b/src/c_wrapper/utils.h @@ -266,18 +266,20 @@ buf_arg(T *buf, size_t l) return ArgBuffer<T, AT>(buf, l); } -template<typename T> +template<typename... T> static PYOPENCL_INLINE auto -size_arg(T &&buf) -> decltype(buf_arg<ArgType::SizeOf>(std::forward<T>(buf))) +size_arg(T&&... buf) + -> decltype(buf_arg<ArgType::SizeOf>(std::forward<T>(buf)...)) { - return buf_arg<ArgType::SizeOf>(std::forward<T>(buf)); + return buf_arg<ArgType::SizeOf>(std::forward<T>(buf)...); } -template<typename T> +template<typename... T> static PYOPENCL_INLINE auto -len_arg(T &&buf) -> decltype(buf_arg<ArgType::Length>(std::forward<T>(buf))) +len_arg(T&&... buf) + -> decltype(buf_arg<ArgType::Length>(std::forward<T>(buf)...)) { - return buf_arg<ArgType::Length>(std::forward<T>(buf)); + return buf_arg<ArgType::Length>(std::forward<T>(buf)...); } template<typename Buff, class = void>