我使用的是C++14,想从存储在unique_ptr中的类示例启动一个方法。我的代码的一个非常简单的版本看起来像:
class foo {
void run_server() {
// Do some stuff.
}
};
auto ptr = make_unique<foo>();
auto res = std::async(std::launch::async, ptr->run_server());
字符串
我得到编译错误,当我编译我的代码和错误消息说,有没有匹配到调用blog.我认为有一种方法来启动一个示例化的类的方法使用lambda函数,但我不知道如何或是否这是一个解决方案,在我的情况.任何帮助是感激.谢谢.
2条答案
按热度按时间xxslljrj1#
你可以使用lambda来实现这一点,但是将unique_ptr传递给lambda意味着你将它移动到lambda,然后当lambda返回时它被销毁。
你可以试试这个:
字符串
oaxa6hgo2#
实际上,我通过以下方式调用类的方法来解决这个问题:
字符串
使用lambda的解决方案也可以工作。