msp*_*err 2 multithreading boost
我想在我的程序中使用boost :: thread,但是得到以下编译器错误(Visual Studio 2005):
Error 1 **error C2064**: term does not evaluate to a function taking 0
arguments d:\...\boost_1_37_0\boost\thread\detail\thread.hpp 56
Run Code Online (Sandbox Code Playgroud)
因此,我尝试在一个小程序中重新创建问题,并从此站点修改了工作的Hello World示例.
我的测试代码现在看起来像这样.为什么不在课堂上工作?:
#include <boost/thread.hpp>
#include <iostream>
class HelloWorld
{
public:
void hello();
void entry();
};
void HelloWorld::entry()
{
boost::thread thrd(&HelloWorld::hello);
thrd.join();
}
void HelloWorld::hello()
{
std::cout << "Hello world, I'm a thread!" << std::endl;
}
int main(int argc, char* argv[])
{
HelloWorld *bla = new HelloWorld;
bla->entry();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
试试这样 - boost :: thread构造函数期望一个boost :: function0(函数指针是一个函数指针,但由于这个指针,成员函数指针不是).
void HelloWorld::entry()
{
boost::thread thrd(boost::bind(&HelloWorld::hello,this));
thrd.join();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4346 次 |
| 最近记录: |