C++ pthreads使用vs2017线程本地存储

C++ pthreads使用vs2017线程本地存储,c++,multithreading,visual-studio-2017,C++,Multithreading,Visual Studio 2017,我正在尝试将一些遗留代码移植到vs2017。代码使用pthreads。 我在线程本地存储声明方面遇到问题。 使用64位命令行编译器cl.exe编译时,此示例非常简单 #include <pthread.h> __thread double * myptr; void silly(void) { myptr=(double*)0x12436; } #包括 __双螺纹*myptr; 无效(无效) { myptr=(双*)0x12436; } 生成错误消息 test1.cpp(

我正在尝试将一些遗留代码移植到vs2017。代码使用pthreads。 我在线程本地存储声明方面遇到问题。 使用64位命令行编译器cl.exe编译时,此示例非常简单

#include <pthread.h>

__thread double * myptr;

void silly(void)
{
  myptr=(double*)0x12436;
}
#包括
__双螺纹*myptr;
无效(无效)
{
myptr=(双*)0x12436;
}
生成错误消息

test1.cpp(3):错误C2144:语法错误:应在“double”之前 用“;”cpp(3):错误C4430:缺少类型说明符-int 假定的。注意:C++不支持默认INT/P>
所以_u线程似乎没有被识别。任何帮助都将不胜感激。

Visual Studio使用
\u declspec(线程)int tls\u i=1例如。我认为
\u线程
是一个g++/clang扩展。来源:C++11还有
thread\u local
请参阅:谢谢。这似乎完成了任务。