将Boost Multi_array转换为本机数组类型



我正在写一个类,该类充当C 类和旧版C代码之间的介于之间。我一直在使用boost multi_array来简化许多代码。此Mult_Array被称为:

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

但是,我遇到了一个问题,我需要将我的多_ array传递给具有类似于

的签名的旧功能
void function(float param[ROWS][COLS]);

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

由于boost::multi_array的存储顺序定义得很好,因此您实际上可以安全地称其为:

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

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

最新更新