gpt4 book ai didi

c++ - 将 boost multi_array 转换为其原生数组类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:10:17 25 4
gpt4 key购买 nike

我正在编写一个类,它充当 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 转换为数组。有什么办法吗?

最佳答案

因为boost::multi_array的存储顺序是well defined ,您实际上可以像这样安全地调用它:

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

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

关于c++ - 将 boost multi_array 转换为其原生数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42816485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com