环境:
在 MSVC 2019 编译器下 test1() 的代码无法通过编译, 会提示数组的边界必须在编译期确定.
问题:
#include
#include
void test1(float *raw, int sizex, int sizey)
{
using DataType = float[sizex][sizey];
auto &data = *reinterpret_cast(raw); // 编译通过, 并可以使用迭代器
// auto &data = *reinterpret_cast(raw);
// 编译无法通过, 错误如下:
// error: Expected a type
for (auto &row: data)
{
for (auto &item: row)
{
std::cout
auto test2(T *t, int sizex, int sizey)
{
using DataType = T[sizex][sizey];
auto ptr = reinterpret_cast(t);
return ptr;
}
int main()
{
int sizex = 3;
int sizey = 4;
std::vector vc(sizex * sizey);
for (int i = 0; i