2017-03-15 31 views
1

我正在编写一个类,用作C++类和传统c代码的中介。 我一直在使用boost multi_array来简化很多代码。这mult_array被宣布为:将boost multi_array转换为其本机数组类型

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

不过,我遇到了,我需要我的multi_array传递给具有类似

void function(float param[ROWS][COLS]); 

我的multi_array的签名遗留功能相关的问题大小的ROWS和COLS,但我不知道任何简单的方法将mutli_array转换为数组。有没有办法做到这一点?

+0

看到这个:http://stackoverflow.com/a/23649263/3962537 –

回答

1

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

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

c_storage_order是默认的,请务必不要使用任何基于结构对象的人。

相关问题