【发布时间】:2026-02-24 17:35:01
【问题描述】:
为什么第一个返回引用?
int x = 1;
int y = 2;
(x > y ? x : y) = 100;
而第二个没有?
int x = 1;
long y = 2;
(x > y ? x : y) = 100;
实际上,第二个根本没有编译——“not lvalue left of assignment”。
【问题讨论】:
-
嗯,就是找个烤面包的特例,没来过一次
-
由于为表达式分配类型意味着至少有一个术语的转换,因此该术语不再是左值。
标签: c++ types reference conditional-operator lvalue