gpt4 book ai didi

c++ - 模板成员变量的值

转载 作者:太空宇宙 更新时间:2023-11-04 14:52:14 26 4
gpt4 key购买 nike

考虑以下两个类:

Struct Gray
{
const int data_size = 32*32;
int width;
int height;
uint8_t data[data_size ]
}

Struct color
{
const int data_size = 32*32*3;
int width;
int height;
uint8_t data[data_size ]
}

我想将这 2 个类合并为一个模板类。

我如何编写这样一个模板类,将 data_size 的值作为模板参数,类似于 template<int data_size> struct ?我们真的在 C++ 中将模板用于此类目的吗?我知道模板用于棘手的变量类型,但从未见过变量值的用例。

最佳答案

可以写一些形式

template<int size>
struct Foo
{
// ToDo - other members here
uint8_t data[size];
};

typedef Foo<32*32> Gray;
typedef Foo<32*32*3> color;

但是请注意,Graycolor 是完全不同的类型。因此,这种模式并不经常使用。一种扩展是为 Foo 可能使用 heightwidth 成员的非模板基类。但是,除非您确实需要模板提供的编译时功能,并且不想使用另一种选择 constexpr,否则常规的运行时多态性可能最适合大多数用途。

关于c++ - 模板成员变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54214714/

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