c++ - 非整数静态数据的类内初始化

标签 c++ static

所以我刚刚通过编译器错误得知数组的类内初始化无效(为什么?)。现在我想在模板类中初始化一些数组,不幸的是内容取决于模板参数。压缩测试用例如下所示:

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/

相关文章:

asp.net - 在 ASP.NET 应用程序中存储单例实例的最佳实践

c++ - 寻找平台 SDK SSPI(Schannel) 示例 c++

c++ - C++中的转发参数

c++ - 为动态分配的整数赋值

c# - 将对象连同静态成员变量序列化为 XML

php - 什么时候在 php 中使用静态变量/函数?

java - 具有静态属性的 Java 代码的奇怪行为

c++ - 无法获取库的枚举( undefined reference staticMetaObject)

c++ - C++ 中 int 的最小大小是多少?

java - 如何使静态日历线程安全