Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MSVC 2012 RC std::thread实现中的最大参数数?_C++_Multithreading_Visual C++_C++11_Visual Studio 2012 - Fatal编程技术网

C++ MSVC 2012 RC std::thread实现中的最大参数数?

C++ MSVC 2012 RC std::thread实现中的最大参数数?,c++,multithreading,visual-c++,c++11,visual-studio-2012,C++,Multithreading,Visual C++,C++11,Visual Studio 2012,显然,在当前的MSVC 2012 RC中,std::thread实现的参数数量是最大的 此代码在MSVC和g++中都可以编译,并且-std=c++0x: std::thread t = std::thread(printf, "%d, %d, %d, %d", 1, 2, 3, 4); t.join(); 但对于超过6个参数,MSVC返回一个错误: std::thread t = std::thread(printf, "%d, %d, %d, %d, %d", 1, 2, 3, 4, 5);

显然,在当前的MSVC 2012 RC中,std::thread实现的参数数量是最大的

此代码在MSVC和g++中都可以编译,并且-std=c++0x:

std::thread t = std::thread(printf, "%d, %d, %d, %d", 1, 2, 3, 4);
t.join();
但对于超过6个参数,MSVC返回一个错误:

std::thread t = std::thread(printf, "%d, %d, %d, %d, %d", 1, 2, 3, 4, 5);
t.join();
错误C2661:'std::thread::thread':没有重载函数需要7 论据


这是故意的吗?或者可能是MSVC实现中的错误?是因为MSVC中还不支持可变模板吗?

MSVC2010没有可变模板,所以它们是在预处理器的帮助下实现的

我认为您可以设置
#define
来设置支持的参数数量。等我回到家后,我可以查一下是哪一个

编辑


我刚刚意识到这是关于2012版的。如您所知,它仍然不支持可变模板。

谢谢!预处理器参数是_VARIADIC_MAX,根据。不过,仍然有最多10个参数。