【问题标题】:Converting boost multi_array to its native array type将 boost multi_array 转换为其本机数组类型
【发布时间】:2017-03-15 17:15:16
【问题描述】:

我正在编写一个类,它充当 c++ 类和遗留 c 代码的中间人。 我一直在使用 boost multi_array 来简化很多代码。这个 mult_array 是这样声明的:

using Array = boost::multi_array<float,2>

但是,我遇到了一个问题,我需要将我的 multi_array 传递给一个签名类似于

的遗留函数
void function(float param[ROWS][COLS]);

我的 multi_array 的大小为 ROWS 和 COLS,但我不知道将 mutli_array 转换为数组的任何简单方法。有什么办法吗?

【问题讨论】:

标签: c++ boost boost-multi-array


【解决方案1】:

由于boost::multi_array的存储顺序是well defined,所以实际上可以这样安全地调用它:

function((float (*)[COLS])array.data());

c_storage_order 是默认值,确保在构造对象时不要使用其他任何东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多