在 C++03 中,表达式是rvalue或lvalue。
在 C++11 中,表达式可以是:
两个类别变成了五个类别。
从我基于草案的猜测来看,r/l 值的区别保持不变,只是在移动事物变得混乱的情况下。
他们需要吗?如果我们希望放弃新功能,可能不会。但是为了实现更好的优化,我们可能应该接受它们。
引用n3055:
E
\*E
有问题的文件是这个问题的一个很好的参考,因为它显示了由于引入新命名法而发生的标准的确切变化。