__thread 指定子を使用してスレッド ローカル変数を作成しようとしています。これは、次のコードで問題なく機能します。
#include <stdio.h>
#include <pthread.h>
static __thread int val;
int main()
{
val = 10;
}
しかし、次のようにクラスで __thread 指定子を使用しようとすると:
#include <stdio.h>
#include <pthread.h>
class A
{
public:
A();
static __thread int val;
};
A::A()
{
val = 10;
}
int main()
{
A a;
}
コンパイラ エラー: undefined reference to 'A::val' が表示されます