假设我正在读取索引从1开始的数据。我希望我的索引基于0。
为什么在流插入运算符之后使用postfix递增/递减运算符是不可接受的?
int a;
std::cin >> a--;
答案 0 :(得分:4)
后增量运算符的结果是临时对象,即使增量仅严格应用于表达式的末尾。要读取值,需要左值,但临时对象不是左值:它们必然会消失。请注意,您还要将值读入临时值,并在a
中保留未指定的值。
答案 1 :(得分:1)
operator>>
有一个需要int&
的重载。 a--
的结果是rvalue,并且您不能将非const引用绑定到rvalue。