gpt4 book ai didi

c++ - reinterpret_cast 结构到固定大小的数组

转载 作者:行者123 更新时间:2023-11-30 02:39:56 25 4
gpt4 key购买 nike

我有一个结构 S,它将两个类型为 T 的固定大小的数组打包在一起。

template<typename T>
struct S {
array<array<T, 20>, 10> x1;
array<T, 10> x2;
};

我想获取对大小为 210 的 T 类型元素的一维数组的引用。我尝试使用 reinterpret_cast,但编译器不会接受这个:

S<T> s;
array<T, 210>& x = *reinterpret_cast<S*>(&s);

我知道this作品:

  S<T> s;
T* x = reinterpret_cast<T*>(&s);

但是有没有办法从该结构中获取对固定大小的一维数组的引用?我尝试使用 #pragma pack(pop, 1) 但没有成功。

最佳答案

reinterpret_cast<array<T, 210>&>(s)应该这样做,如果那真的是您想要的。

它应该是明确定义的,因为这些是标准布局类型(假设 T 是)。但你如履薄冰。

关于c++ - reinterpret_cast 结构到固定大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416839/

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