无堆叠:
auto data = https://www.isolves.com/it/cxkf/yy/C/2023-02-21/co_await socket.receive();process(data);co_await socket.send(data);co_return; // requires function to return a special data type
堆叠:
auto data = https://www.isolves.com/it/cxkf/yy/C/2023-02-21/socket.receive();process(data);socket.send(data);
P0876已被纳入核心亚组 。经过讨论,决定禁止在执行线程之间迁移此类协程 。禁止的主要原因是编译器优化了对TLS的访问并缓存了TLS变量的值:
thread_local int i = 0;++i;foo(); // Stackful coroutines can switch execution threadsassert(i > 0); // The compiler saved the address in a register; we’re working with the TLS of another thread摘要
就这么定了!C++23已经被正式发送到更高的ISO权威机构,并将很快作为一个完整的标准发布 。
与此同时,C++26的开发正如火如荼,在执行器、网络化、模式匹配、静态反射等方面都有着令人兴奋的前景 。
推荐阅读
- 流浪地球2|胡鑫宇尸检已完成,3处细节让案件变得更加诡异
- 姚二嘎|2023兔年春晚:催婚催生KPI已完成,不如看张若昀吃鸡
- 少年歌行|《少年歌行》作者透露前传剧本已完成,没找到合适演员迟迟未开机
- 阿凡达3|《阿凡达3》拍摄工作已完成95%,未剪辑时长将长达9个小时
- 正在扫描和修复驱动器c已完成100%几个小时 电脑一直显示正在扫描和修复驱动器,已完成100%
