gpt4 book ai didi

c++ - 副作用/ volatile /复制构造函数/析构函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:27 25 4
gpt4 key购买 nike

引用here的讨论

$3.7.1/2 - "如果一个静态存储持续时间的对象有初始化或者有副作用的析构函数,即使它看起来没有被使用也不应该被淘汰,除了一个类对象或者它的拷贝可能被淘汰如 12.8 中所述。”

$12.8/15-“当满足特定条件时,允许实现省略类对象的复制构造,即使对象的复制构造函数和/或析构函数有副作用。”

是否是上述情况,具体示例,即使是 volatile 读/写也可能被优化掉(例如,如果复制构造函数具有对 volatile 变量的读/写)。

所以问题是“即使复制构造函数具有对 volatile 变量的读/写,也可以省略复制构造函数吗?”

最佳答案

NRVO 仅在命名对象为非 volatile 对象时才允许 [它就在您引用的同一部分中,第一个项目符号],否则我不明白为什么不这样做。毕竟,如果您正在创建的对象是可变的,您仍然在写入它,您只是没有通过复制构造函数这样做。并且它没有限定允许忽略哪些副作用,因此很明显,如果 volatile 读/写在复制构造函数本身内,则编译器不必关心。

关于c++ - 副作用/ volatile /复制构造函数/析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3605731/

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