![]() |
1
2
因为您使用的是承诺RVO的C++17,所以即使您添加了-O0。 this maybe help |
![]() |
2
2
好的,到目前为止还不错。
啊,但这里你想错了。你看,RVO并不是唯一一种拷贝省略。也可以省略从临时返回值复制局部变量的初始化,它是。因此,没有“调用者堆栈中的另一个内存空间”,因为对象直接构造到变量的内存位置。
应该预料到会发生拷贝省略。在您不能依赖复制/移动构造函数来 不 有副作用。 |
![]() |
KiraHoneybee · 具有构造函数参数的模板化类 2 年前 |
![]() |
nick2225 · 隐式调用复制构造函数? 2 年前 |
![]() |
nohaga · 为什么在本例中p3需要默认构造函数? 2 年前 |
![]() |
Aadil Hoda · 为什么类类型的成员需要初始化? 2 年前 |
![]() |
EloiGG · 具有任意类型的变量的可数的C++函数 2 年前 |