【发布时间】:2022-06-27 18:56:36
【问题描述】:
我已阅读文章 Using Coroutine TS with zero dynamic allocations,作者坚持 HALO 将适用于协程,他提供了一个 godbolt link,其中显示了使用 clang 5.0 应用的生成器示例 HALO。
但是,使用更新版本的 clang(godbolt 上的 clang 13.0.1)我可以看到对 operator new 的调用。事实上,我找不到任何支持 HALO for corouine 的最新编译器。我已经在 MSVC 2019/2022、GCC 11.2 上进行了测试,所有程序集都显示了对 operator new 的调用。
我真的可以像作者在那篇文章中坚持的那样依赖 HALO 吗?例如,即使在将复制省略成为标准的 C++17 之前,RVO 也非常可靠。对于协程,我应该注意什么?
【问题讨论】:
标签: c++ optimization coroutine