MSVC 2012 RC std::线程实现中的最大参数数
Maximum number of arguments in MSVC 2012 RC std::thread implementation?
显然,在当前的MSVC 2012 RC中,std::thread实现的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::线程::线程":没有重载函数需要 7 参数
这是有意为之吗?或者可能是 MSVC 实现中的错误?是因为 MSVC 中尚不支持可变参数模板吗?
MSVC2010没有
可变参数模板,因此它们是在预处理器的帮助下实现的。
我认为您可以设置一个#define
来设置支持的参数数量。我可以稍后检查,当我回到家里时,它是哪一个。
编辑:
我刚刚意识到这是大约 2012 年的版本。正如蜜蜂在VS连接错误报告中读取的那样,它仍然不支持可变参数模板。
相关文章:
- C++函数模板需要 &for 数组参数
- C++ 数组参数不起作用
- 使用数组参数进行函数专用化
- 为什么我的数组参数的方法无法正常工作?(C )
- SWIG - Java 代理类数组参数
- 在 gcc 中使用数组参数编译外部"c"代码
- 从 VB6 调用的 C++ DLL 函数中的输出数组参数
- 基于模板参数的模板类力数的参数
- 如何根据数组参数项类型重载 IDL 中的函数
- 引用谷歌测试/模拟框架中的数组参数
- 比特菲尔德,标志数为参数
- C++将数组参数传递给函数
- 字符星形数组参数未正确终止
- 如何将德尔菲的"字符串数组"参数翻译成C++?
- 为什么 gcc 无法推断数组参数的模板化大小?(C++11)
- 使用 const char 数组参数分析 constexpr 显示运行时执行
- C++指针数组参数
- 固定大小的多维数组参数
- 为什么数组参数被视为常量数组
- 如何在pgsql中格式化数组参数