[英]Want to create a variable of datatype "Struct", and control (Array Size) of its sub element from outside
我想在声明数据类型“Struct”的变量时从外部输入 SIZE。 基本上我想使用这种不同大小的数据类型。
struct ArrStruct final
{
std::array<float32_t, SIZE> Arr1;
std::array<float32_t, SIZE> Arr2;
};
struct Type1 final
{
ArrStruct var4;
float32_t var5;
};
struct StructData final
{
Type1 var1;
float32_t var2;
float32_t var3;
};
struct Struct final
{
StructData Data;
};
在这种情况下,您可以使用称为 SIZE 的 c++ 宏。 我也没有找到 float32_t 数据类型,所以我只使用了 32 位大小的 float。
#define SIZE 3
struct ArrStruct final
{
std::array<float, SIZE> Arr1;
std::array<float, SIZE> Arr2;
};
您可以使SIZE
成为模板参数:
template <size_t SIZE>
struct ArrStruct final
{
std::array<float32_t, SIZE> Arr1;
std::array<float32_t, SIZE> Arr2;
};
template <size_t SIZE>
struct Type1 final
{
ArrStruct<SIZE> var4;
float32_t var5;
};
template <size_t SIZE>
struct StructData final
{
Type1<SIZE> var1;
float32_t var2;
float32_t var3;
};
template <size_t SIZE>
struct Struct final
{
StructData<SIZE> Data;
};
Struct<42>
是一个带有StructData<42>
的Struct
,它又具有Type1<42>
类型的成员,并且具有ArrStruct<42>
类型的成员,其中包含大小为42
的 arrays 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.