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);