Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将_cast结构重新解释为固定大小的数组_C++_Arrays_Struct_Reinterpret Cast - Fatal编程技术网

C++ 将_cast结构重新解释为固定大小的数组

C++ 将_cast结构重新解释为固定大小的数组,c++,arrays,struct,reinterpret-cast,C++,Arrays,Struct,Reinterpret Cast,我有一个结构S,它将两个类型为T的固定大小数组组合在一起 template<typename T> struct S { array<array<T, 20>, 10> x1; array<T, 10> x2; }; 我知道你的作品: S; T*x=重新解释铸件(&s); 但是,有没有一种方法可以从该结构中获得对固定大小的一维数组的引用?我尝试使用了#pragma-pack(pop,1),但没有成功。如果您真的想要重新解释,则应

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

template<typename T>
struct S {
    array<array<T, 20>, 10> x1;
    array<T, 10> x2;
};
我知道你的作品:

S;
T*x=重新解释铸件(&s);
但是,有没有一种方法可以从该结构中获得对固定大小的一维数组的引用?我尝试使用了
#pragma-pack(pop,1)
,但没有成功。

如果您真的想要重新解释,则应该这样做


它应该定义得很好,因为它们是标准布局类型(假设
T
is)。但你如履薄冰。

你的演员阵容似乎。。。犯罪嫌疑人你为什么要那样?这个问题似乎是。我有几种不同的类型(机器学习模型),它们有一组很大的参数。为了有效地使用自己的参数,每种类型都将它们封装在一个或多个多维数组中。另外,我有一个通用函数,它可以优化任意数量的参数,而不管这些参数来自哪个模型。。。当然我只是没看到。谢谢你抽出时间。是的,只有当
是标准布局时,我才允许模板实例化。
S<T> s;
array<T, 210>& x = *reinterpret_cast<S*>(&s);
  S<T> s;
  T* x = reinterpret_cast<T*>(&s);