【发布时间】:2021-03-06 00:29:21
【问题描述】:
我有这个模板化的成员“函数”,它的参数是一个对象实例和这个对象的一个成员函数(就像一个包装器):
class Monitor
{
Monitor();
~Monitor();
template <typename O, typename F>
void (O object, F function)
{
object.function();
}
}
如果我们有这个类:
class Object
{
Object();
~Object();
function()
{
std::cout << "Do something" << std::endl;
};
}
对这个函数的调用会是这样的:
int main()
{
Monitor monitor;
Object object;
monitor.waitData(object, function);
return 0;
};
这就是问题所在。如果我想调用一个在成员函数“waitData”上工作的线程,应该怎么写?
int main()
{
Monitor monitor;
Object object;
// std::thread threadWait(monitor.waitData(object, function)) -> Obviously gets an error
std::thread threadWait(???????);
return 0;
};
提前致谢。
【问题讨论】:
-
plz,如果任何答案都很好地回答了您的问题,请考虑支持并接受它。如果不是请说明原因。
标签: c++ multithreading templates monitor