gpt4 book ai didi

c++ - 未使用的对象和链接时间优化

转载 作者:搜寻专家 更新时间:2023-10-31 00:53:50 25 4
gpt4 key购买 nike

假设我有一个类 Permission,它由用户名和权限标识符构成。此权限类的构造函数将检查用户是否具有该特定权限,如果没有则抛出。

在 api 请求处理程序中,这些权限对象是堆栈变量,由用户和权限构成。如果该用户没有权限,我希望抛出一个异常。

是否可以保证这些权限对象不会被优化掉,因为我只是构造它们但再也不会使用它们(如果权限被拒绝,它们需要抛出)?

最佳答案

是的。优化按 as-if 规则进行。该程序的行为必须像在兼容的 C++ 实现上运行一样。现在,特定的“兼容行为”可能并不总是您对实际硬件的期望。例如。空循环的速度对于您的 CPU 模型来说可能太快了,因为循环已经过优化。

但是,每个实现的行为都必须好像它调用了您的构造函数。这确实包括内联构造函数(汇编中没有函数调用),但是 ctor 的实际内容,例如控制台 I/O,仍然必须发生

关于c++ - 未使用的对象和链接时间优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47434860/

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