Add missing && when forwarding args (#894)

Without the && args would be copied and perfect forwarding won't work.

Also add template utils to make sure the function only forwards array
and not vector<array>.
This commit is contained in:
Cheng
2024-03-26 06:55:54 +09:00
committed by GitHub
parent 8e686764ac
commit 28fcd2b519
4 changed files with 18 additions and 8 deletions

View File

@@ -89,9 +89,8 @@ collapse_contiguous_dims(const std::vector<array>& xs) {
return collapse_contiguous_dims(xs[0].shape(), strides);
}
template <typename... Arrays>
inline std::tuple<std::vector<int>, std::vector<std::vector<size_t>>>
collapse_contiguous_dims(Arrays... xs) {
template <typename... Arrays, typename = enable_for_arrays_t<Arrays...>>
inline auto collapse_contiguous_dims(Arrays&&... xs) {
return collapse_contiguous_dims(
std::vector<array>{std::forward<Arrays>(xs)...});
}