gpt4 book ai didi

c++ - 什么时候计算右值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:05:24 25 4
gpt4 key购买 nike

所以我知道 s2 绑定(bind)到表达式 s1 + s1,但是这是在分配 s2 时计算的还是它懒惰并在调用 s2 += "Test"; 时求值? s2 还会为临时字符串保留内存吗?

#include <iostream>
#include <string>

int main()
{
std::string s1 = "Test";
std::string&& s2 = s1 + s1;
s2 += "Test";
std::cout << s2 << '\n';
}

最佳答案

s2 binds to the expression s1 + s1, but is this evaluated at the time s2 is assigned

是的。

And also would s2 hold memory for a temporary string?

准确地说,s2 绑定(bind)到一个临时的std::string

s1 + s1 将产生一个临时的 std::string,它将绑定(bind)到引用 s2(并且它的生命周期被延长到引用的生命周期)。然后s2 += "Test";,对s2执行operator+=(),即临时的std::string.

关于c++ - 什么时候计算右值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44298456/

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