gpt4 book ai didi

c++ - C++ 中的延迟/ promise 模式

转载 作者:IT老高 更新时间:2023-10-28 22:35:05 25 4
gpt4 key购买 nike

我最近发现并爱上了 jQuery 中使用的 Deferred/Promise 模式。它只是封装了这么多异步用例,包括出色的链接、过滤能力,我不敢相信我错过了这么久。

我刚刚完成了对我的 AS3 代码的重构,以使用出色的 CodeCatalyst/promise-as3 库 (https://github.com/CodeCatalyst/promise-as3),因此开始考虑回到我的 C++ 代码,看看如何在那里实现该模式。

在我自己开始编写代码之前,我检查了它之前是否已经完成,并发现了 std::future/std::promise(和 boost等价物),但它们非常重(它们似乎使用真正的线程等,并且具有繁重的模板语法)。

所以,我的问题是:有没有轻量级、纯 C++ 实现的 Deferred/Promise 模式,jQuery 风格?

引用:

最佳答案

抱歉玩死灵法师,但我也很感兴趣使用A+风格的 C++ promise ,并花了数年时间找出实现它的最佳方法。我最终成功了,你可以看到我的实现 here .

用法非常简单,但确实大量使用了模板和模板元编程。这是一个例子:

Promise<int> promise;

promise.future().then([](int i){
std::cout << "i = " << i << std::endl;
return "foobar";
}).then([](const std::string& str){
std::cout << "str = " << str << std::endl;
});

promise.resolve(10);

这会打印出来:

i = 10
str = foobar

关于c++ - C++ 中的延迟/ promise 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11389338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com