[英]Stream insertion combined with postfix operators
假設我正在讀取索引從1開始的數據。我希望索引從0開始。
為什么在流插入運算符之后使用后綴遞增/遞減運算符是不可接受的?
int a;
std::cin >> a--;
即使增量僅在表達式的末尾嚴格應用,后增量運算符的結果也是一個臨時對象。 要讀取一個值,需要一個左值,但臨時對象不是左值:它們必然會消失。 請注意,你也想讀值到臨時,固定在一個未確定的值a
。
operator>>
具有一個需要int&
的重載。 a--
的結果是一個右值,您不能將非常量引用綁定到一個右值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.