【发布时间】:2011-05-26 14:42:18
【问题描述】:
Copy elision 是一种简洁的优化技术,在某些情况下依赖于复制省略 can actually be faster 而不是“手动”传递引用。
因此,假设您已经确定了一个关键代码路径,您依靠编译器执行复制省略这一事实来获取代码路径以获得最佳性能。
但现在您依赖的是编译器优化。
是否有任何(显然是特定于编译器)方法来确保实际执行复制省略并让编译器(或其他工具)在无法执行复制省略时生成警告/错误?
(我正在考虑与 Visual C++ 的__forceinline 类似的东西,如果这样标记的函数没有被编译器内联,则会生成警告。)
【问题讨论】:
-
自从提出并回答了这个问题以来,C++17 已在 GCC、Clang 和 MS VC++ 中发布和支持。考虑到这一点,您愿意更新它吗?
-
@PhilMiller - 不确定 question 在这方面有何显着变化。不过,我赞成你的回答。有用的信息。
标签: c++ diagnostics compiler-directives copy-elision