有人会举一个"可修改的右值"的例子吗?我的理解是rvalue出现在表达式"="的右侧.我测试了以下示例,但我不确定它是否解释了"可修改的rvalue"
int i=1
int &j = i;
j=2; //cout: i == 2,
Run Code Online (Sandbox Code Playgroud)
它在某种程度上取决于短语"可修改的右值"的上下文.但是,这是一个可能的例子:
struct Modifiable
{
int x;
void modify() { std::cout << x << '\n'; x = -x; std::cout << x << '\n'; }
};
Modifiable demo()
{
Modifiable m;
m.x = 42;
return m;
}
int main()
{
demo().modify();
}
Run Code Online (Sandbox Code Playgroud)
返回值demo()是一个rvalue(实际上甚至是prvalue),但是通过调用来修改modify().
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |