如果你要这样使用它,不会有太大的收获。但是,典型的用法是
std::future<errType> async_sendMessage(Message msg,Message* reply){
auto fut = std::async(&MyClass::sendMessage, this);
return fut;
}
然后,例如。
Message msg;
auto fut = object.async_sendMessage(msg, nullptr);
// do other work here
errType result = fut.get();
这是一个完整的演示(为缺少的元素填充存根):** Live on Coliru
#include <future>
struct Message {};
struct errType {};
struct MyClass
{
std::future<errType> async_sendMessage(Message msg,Message* reply){
auto fut = std::async(std::bind(&MyClass::sendMessage, this));
return fut;
}
private:
errType sendMessage() {
return {};
}
};
int main()
{
MyClass object;
Message msg;
auto fut = object.async_sendMessage(msg, nullptr);
errType result = fut.get();
}