我在大多数c ++编译中使用gcc-4.9。最近我决定尝试编译我的项目。我的项目大量使用gcc的__thread存储。
所以,我决定测试以下代码
//main.cpp
class A
{
};
int main()
{
static __thread A * a = new A();
}
使用g ++ 4.9编译时,代码编译正常(如果它们是函数作用域静态的话,gcc支持__thread的动态初始化。)
但是当我使用clang ++ 3.5编译相同时,我得到了这个错误
main.cpp:8:26: error: initializer for thread-local variable must be a constant expression
static __thread A * a = new A();
此功能是否缺少clang ++ 3.5?
我试过寻找答案(我的搜索技巧不好),没有找到满意的答案,所以如果我错过了,或者这个重复的问题也请引导我到原来的那个。< / p>