gpt4 book ai didi

c++ - 显示在 C++ 中创建临时文件的位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:34:11 25 4
gpt4 key购买 nike

找出在我的 C++ 代码中创建临时变量的最快方法是什么?

答案并不总是很容易从标准中推导出来,编译器优化可以进一步消除临时变量。

我已经在 godbolt.org 上进行了试验,它非常棒。不幸的是,当涉及到临时文件时,它经常将树隐藏在汇编程序的木头后面。此外,激进的编译器优化选项使汇编器完全不可读。

还有其他方法可以实现吗?

最佳答案

“编译器优化可以进一步消除临时变量。”

看来你对C++的语义有一点误解。 C++ 标准讨论临时对象来定义程序的形式语义。这是描述大量可能执行的紧凑方式。

实际的编译器根本不需要这样。通常,他们不会。真正的编译器知道寄存器,真正的编译器不会假装 POD 具有(普通的)构造函数和析构函数。这在优化之前就已经发生了。我不知道有任何编译器会在 Debug模式下生成普通的 ctors。

现在标准描述的一些语义只能通过相当接近的近似来实现。当析构函数有明显的副作用时(想想 std::cout),这些类型的临时变量不能完全消除。但是真正的编译器可能会在不分配任何存储空间的情况下实现可见的副作用。暂时存在或暂时不存在的概念是二元的观点,实际上存在中间形式。

关于c++ - 显示在 C++ 中创建临时文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48412892/

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