我需要概括 C++ typedef,这样我就不需要复制和粘贴大量代码。我正在使用 boost 序列化 Blitz 数组,并且正在定义自己的加载和保存方法,并且需要基于模板参数来执行此操作。基本上我不知道如何概括
typedef blitz::Array<double, 2> my_Matrix;
对于高阶张量,即,我想概括上面的内容,以便它需要 1,2,..,n,如果可能的话,对类型做同样的事情。
我想我正在寻找类似 typedef 模板的东西。
最佳答案
对 Blitz 数组了解不多,但您应该能够将 typedef 放入模板化结构中。例如。像这样:
template<int N>
struct Matrix
{
typedef blitz::Array<double,N> Type;
};
像这样使用Matrix<3>::Type
.
至于有关序列化的其他问题,请查看数组的文档:
http://www.oonumerics.org/blitz/manual/blitz02.html
看起来你可以通过调用 size() 来替换 rows * cols 的大小测试。 data() 方法仍然适用于秩 > 2 的矩阵。
关于c++ - Typedef 泛化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3264782/