Bra*_*ean 6 c++ temporary rvalue rvalue-reference c++11
所以我理解s2绑定到表达式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';
}
Run Code Online (Sandbox Code Playgroud)
son*_*yao 16
s2结合到表达s1 + s1,但是这在时间评价s2被分配
是.
还会
s2为临时字符串保存内存吗?
确切地说,s2必然是暂时的std::string.
s1 + s1将生成一个临时的std::string,将绑定到引用s2(并将其生命周期延长到引用的生命周期).然后s2 += "Test";,执行operator+=()上s2,即临时std::string.
| 归档时间: |
|
| 查看次数: |
1364 次 |
| 最近记录: |