在clang中动态初始化函数作用域静态__thread变量

时间:2014-12-03 06:23:32

标签: c++ clang++ thread-local-storage gcc4.9

我在大多数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>

0 个答案:

没有答案