c++ - Typedef 泛化

标签 c++ serialization boost typedef

我需要概括 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/

相关文章:

c++ - range-for 循环到底做了什么?

Java:我可以在不调用其构造函数的情况下反序列化一个对象吗?

c++ - 通过 std::shared_ptr<T>::reset() 同步销毁

c++ - Boost 1.53.0 - 构建 VC++11 时出现 LNK1104 错误

c++ - 使用 boost::serialization 序列化递归图结构时如何防止堆栈溢出?

c++ - OpenGL:GL_QUADS 不绘制正方形

c++ - 链接器错误 - friend 和左侧。 (没有模板)

c++ - DrRacket 中的 C 扩展

c# - 序列化-反序列化(二进制)

java - readObjectNoData 何时被调用