所以我刚刚通过编译器错误得知数组的类内初始化无效(为什么?)。现在我想在模板类中初始化一些数组,不幸的是内容取决于模板参数。压缩测试用例如下所示:
template<typename T>
struct A {
T x;
static const int len = sizeof(T); // this is of course fine
static const int table[4] = { 0, len, 2*len, 3*len }; //this not
}
知道如何提取常量数组吗?
编辑:添加了“int”。
最佳答案
就像您在没有模板的情况下所做的一样;将初始化放在类的声明之外:
template<class T>
const int A<T>::table[4] = { 0, len, 2*len, 3*len };
关于c++ - 非整数静态数据的类内初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1518710/