我希望实例化一个类的公共成员并将其作为承诺返回。
这就是我想要做的:
class A
{
public:
int x;
};
std::future<A> returnPromiseA(int y)
{
std::promise<A> promise;
promise.x = y; //<- THIS IS INCORECT
return promise;
}
promise.x = y;
是不正确的语法。
赋值的正确语法是什么?
我希望实例化一个类的公共成员并将其作为承诺返回。
这就是我想要做的:
class A
{
public:
int x;
};
std::future<A> returnPromiseA(int y)
{
std::promise<A> promise;
promise.x = y; //<- THIS IS INCORECT
return promise;
}
promise.x = y;
是不正确的语法。
赋值的正确语法是什么?
您不能通过std::promise
. 要在 a 中设置值,std::promise
您需要使用该set_value
函数。
这意味着你的代码应该看起来像
std::future<A> returnPromiseA(int y)
{
std::promise<A> promise;
promise.set_value(A{y}); // construct an A with the desired value and set promises' value to that
return promise;
}
当前的 C++ 异步类无法链接延续,因此您必须以其他方式进行:
std::future<A> returnFutureA(int y) {
return std::async([y]{ A retVal; retVal.x = y; return retVal; });
}