Скажем, я читал данные, в которых индексирование начинается с 1. Я хочу, чтобы индексирование основывалось на 0.
Почему нельзя использовать постфиксные операторы увеличения / уменьшения после оператора вставки потока?
int a;
std::cin >> a--;
Результатом оператора постинкремента является временный объект, даже если инкремент строго применяется только в конце выражения. Чтобы прочитать значение, необходимо lvalue, но временные объекты не являются lvalue: они обязательно исчезнут. Обратите внимание, что вы также прочитали бы значение во временное, сохранив неопределенное значение в a
,
operator>>
имеет перегрузку, которая занимает int&
, Результат a--
является rvalue, и вы не можете привязать неконстантную ссылку к rvalue.