gpt4 book ai didi

c++ - 将 reinterpret_cast 转换为 C 样式数组是否非法 C++11?

转载 作者:太空狗 更新时间:2023-10-29 19:46:03 24 4
gpt4 key购买 nike

为什么下面的代码不受欢迎?

double d[4] = {0,1,2,3};
reinterpret_cast<double[2]>(d);

GCC 将其声明为 invalid cast from type 'double*' to type 'double [2]'并且 clang 声明 reinterpret_cast from 'double *' to 'double [2]' is not allowed

如果意图不明显,我希望此代码返回一个包含 {0,1} 的 double [2],非常类似于 reinterpret_cast<double*>(d)。将。 (因此我知道它可以与指针一起使用,所以这不是我要问的)

最佳答案

你可能想要的是

double (&d2)[2] = reinterpret_cast<double(&)[2]>(d);

虽然不确定它不是迂腐的未定义行为(因为 reinterpret_cast 的大多数用法)。

关于c++ - 将 reinterpret_cast 转换为 C 样式数组是否非法 C++11?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18514490/

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