teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/05/26 15:29

投稿

Chironian
Chironian

スコア23274

answer CHANGED
@@ -4,4 +4,41 @@
4
4
 
5
5
  これはどのような方法を試みられたのでしょうか? もし、[thread_local](https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E5%B1%80%E6%89%80%E8%A8%98%E6%86%B6#C.2FC.2B.2B)指定したのではないのでしたら、このキーワードを付けてみるのも手と思います。C11, C++11以降で使える機能です。
6
6
 
7
- ただ、JNA経由で呼ばれた時もちゃんと動くのか、あまり確信はもてません。外れていたらごめんなさい。
7
+ ただ、JNA経由で呼ばれた時もちゃんと動くのか、あまり確信はもてません。外れていたらごめんなさい。
8
+
9
+ ---
10
+ 【追記】
11
+ ```C++
12
+ #include<iostream>
13
+
14
+ struct Foo
15
+ {
16
+ Foo()
17
+ {
18
+ std::cout << "Foo()\n";
19
+ }
20
+ ~Foo()
21
+ {
22
+ std::cout << "~Foo()\n";
23
+ }
24
+ };
25
+
26
+ __declspec( thread ) Foo gFoo;
27
+
28
+ // https://msdn.microsoft.com/ja-jp/library/9zxe5aww.aspx
29
+ __declspec(thread) struct A {
30
+ A(){}
31
+ ~A(){}
32
+ } aa; // C2483 error
33
+
34
+ __declspec(thread) struct B {} b; // OK
35
+
36
+ int main()
37
+ {
38
+ return 0;
39
+ }
40
+ ```
41
+ コマンドラインで、`cl ソース.cpp /EHsc`にてコンパイルしたところ、エラーにならず、正常に実行できました。
42
+ MinGW(gcc)でも、問題ありませんでした。
43
+
44
+ コンパイラのバージョンをあげればもしかすると通るかも知れないです。