【发布时间】:2012-05-07 18:15:37
【问题描述】:
我有一个名为 workForThread 的函数,它接受两个参数并返回 void。我想使用类似的东西来线程这个函数:
thread(workForThread,a,b);
其中a 和b 是适当的类型。上面的代码没有编译,给出“too many arguments for call”错误(“error C2197: 'void (__cdecl *)(char *)' : too many arguments for call”)
我该如何解决这个问题?
注意:我查看了thesetwo 问题,但那里的解决方案似乎对我不起作用。此外,我觉得有一种方法可以在 c++11 中内置,这就是我正在寻找的。p>
【问题讨论】:
-
C++11 线程有一个(模板化的)构造函数可以做到这一点。
-
那么为什么它会给我这个错误?
-
你有什么版本的VS?也许它不支持。
-
不熟悉VS,但我认为那个版本应该可以工作,而且我认为错误信息看起来很奇怪。您正在使用的函数的签名是什么?
-
投票结束,因为真正的问题在于 OP 没有向我们展示的代码。
标签: c++ multithreading visual-c++ c++11 visual-studio-2012