【发布时间】:2021-03-26 08:12:01
【问题描述】:
问题
我有一个Matrix 类可以做一些数学运算。它将数据保存在双重嵌套的std::array 中作为变量。我有一个将数组引用作为可变参数模板的构造函数。我这样做是为了更容易添加一些 SFINAE(此处省略)。
#include <array>
template <std::size_t N, std::size_t M, typename T>
class Matrix{
public:
template <typename... TArgs>
Matrix(TArgs const(&&... rows)[M]) {
// ??
}
// ...
private:
std::array<std::array<T,M>, N> data;
};
问题
如何在构造函数中初始化双嵌套数组?
【问题讨论】:
-
我们应该如何确定
N?只是那个包的大小? -
您在初始化列表中初始化成员,而不是在构造函数主体中。
-
是的,就是包的大小。 N 和 M 在编译时是已知的。基本上所有尺寸(即矩阵尺寸)都是固定的,这应该更容易初始化......
-
上帝在这里:godbolt.org/z/GP9369
-
我不明白
const &&在这里的用法。他们通常来apart。
标签: c++ arrays constructor c++14 variadic-templates