C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 有效期货与违约构造期货大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在我的并发编程课中学习期货.我的教授在她的幻灯片中说明了这一点:
"Valid" futures arefutureobjects associated to a
shared state,and are constructed by calling one of the following functions:

async
promise::get_future
packaged_task::get_future
@H_404_5@我无法理解上述的含义,尤其是“除非移动指定有效的未来”部分.有人可以用简单的术语解释一下,也许还会展示一些示例代码吗?

解决方法

std::future constructor所述: @H_404_5@这只是意味着调用对象的认构造函数,如:

std::future<int> f;
@H_404_5@这将调用构造函数#1,其中指出:

@H_404_5@至于其他部分:

@H_404_5@这里的含义是将调用移动构造函数(future(future&& other)#2),其中指出:

@H_404_5@基本上,此构造函数中的其他状态将移至此状态.这意味着如果other.valid()== true,那么在移动构造函数返回后,other.valid()将为false,this.valid()将为true.如果other.valid()以false开头,则两者都将以false结尾.

std::future<int> fut; // fut.valid() == false,default constructor

std::future<int> valid_fut = std::async(std::launch::async,[](){ return 42; }); // obtain a valid std::future..
// valid_fut.valid() == true here

//Now move valid_fut into new_fut
std::future<int> new_fut(std::move(valid_fut));
// new_fut.valid() == true
// valid_fut.valid() == false
@H_404_5@总结一下:

@H_404_5@>调用std :: future的认构造函数将导致valid()== false.总是.>调用std :: future的move构造函数只有在other.valid()为true之前才会生成valid()== true.否则就错了.

大佬总结

以上是大佬教程为你收集整理的c – 有效期货与违约构造期货全部内容,希望文章能够帮你解决c – 有效期货与违约构造期货所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: