【发布时间】:2016-04-06 23:06:04
【问题描述】:
对数组大小使用模板似乎很简单:
template <size_t N>
struct MyArray
{
char array[N];
};
不过,我想做的是根据其他东西设置数组大小:
enum MyEnum {Hi, Lo};
template <MyEnum T, size_t N>
struct MyArray
{
MyEnum type() { return T; }
char array[N];
};
如何在 MyEnum 为 Hi 时将 N 设置为 10,在 MyEnum 为 Lo 时将 N 设置为 200?
我想做的是说
MyArray<Lo> lo; // Result in MyArray<Lo, 200>
MyArray<Hi> hi; // Result in MyArray<Hi, 10>
不用说
MyArray<Lo, 200> lo;
MyArray<Hi, 10> hi;
这可能吗?
【问题讨论】:
标签: c++ templates class-template