使用模板来确定数组大小似乎很简单:
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;
这可能吗?