, Array s, , , . , :
template <typename T>
T&& join_rows(T&& A) {
return std::forward<T>(A);
}
template <typename S, typename T, typename... R>
Array<typename S::Scalar, Dynamic, Dynamic> join_rows(const ArrayBase<S>& A,
const ArrayBase<T>& B,
const ArrayBase<R>&... rest) {
Array<typename S::Scalar, Dynamic, Dynamic> C(A.rows(), A.cols()+B.cols());
C << A, B;
return join_rows(C, rest...);
}
:
int main() {
Array<int, 1, 3> arr1 = {1, 2, 3};
Array<int, 1, 2> arr2 = {4, 5};
Array<int, 1, 4> arr3 = {9, 8, 7, 6};
cout << join_rows(arr1, arr2, arr3.reverse()) << endl;
return 0;
}
join_rows Eigen::Array s, std::enable_if ArrayBase<T>:
template <typename T>
std::enable_if_t<std::is_base_of<ArrayBase<std::decay_t<T>>,std::decay_t<T>>::value, T&&>
join_rows(T&& A) {
return std::forward<T>(A);
}
Array s . , -, Array.