相关疑难解决方法(0)

你如何在C++中实现Coroutines

我怀疑它可以移植,但有没有解决方案?我认为可以通过创建备用堆栈并在功能输入上重置SP,BP和IP,并使产量保存IP并恢复SP + BP来完成.析构函数和异常安全看起来很棘手但可以解决.

它完成了吗?这不可能吗?

c++ coroutine c++17

64
推荐指数
8
解决办法
5万
查看次数

我怎么能做自己的懒惰迭代器?

我正在制作一个产生大量数据的C++ 11类.该数据目前来自数据库,并不能完全适合内存.我想为用户提供一个迭代器,其行为类似于常规的STL迭代器,但这将是懒惰的.更准确地说,我可以做类似的事情:

for (auto& item : big_bunch_of_data) {
    do_stuff_with(item);
}
Run Code Online (Sandbox Code Playgroud)

仅在每次迭代时从数据库中检索项目.如果我是对的,这个新语法就是糖

for (stuff::iterator it = big_bunch_of_data.begin();it != big_bunch_of_data.end();it++) {
    do_stuff_with(*it);
}
Run Code Online (Sandbox Code Playgroud)

这是否意味着通过提供begin,end并且operator++,我可以有所期望的行为?而且,这些方法应该做什么?我的意思是,我可以让他们懒惰而不破坏东西吗?

c++ iterator lazy-evaluation c++11

10
推荐指数
1
解决办法
2401
查看次数

标签 统计

c++ ×2

c++11 ×1

c++17 ×1

coroutine ×1

iterator ×1

lazy-evaluation ×1