我想创建一些测试来检查我的应用程序中的多线程。我使用谷歌测试框架。我的以下代码未编译错误消息error: invalid use of non-static member function
TEST_F( tc, t ) {
std::thread thread1 ( f1, p1 );
std::thread thread2 ( f2, p2 );
thread1.join();
thread2.join();
}
我使用GCC 5.2.1进行编译。
你能指点我解决它吗?
答案 0 :(得分:1)
你需要告诉std :: thread f1和f2是使用std::bind
的测试夹具的方法:
TEST_F( tc, t ) {
std::thread thread1(std::bind(&tc::f1, this, p1));
std::thread thread2(std::bind(&tc::f2, this, p2));
thread1.join();
thread2.join();
}