Вставка потока в сочетании с постфиксными операторами

Скажем, я читал данные, в которых индексирование начинается с 1. Я хочу, чтобы индексирование основывалось на 0.

Почему нельзя использовать постфиксные операторы увеличения / уменьшения после оператора вставки потока?

int a;
std::cin >> a--;

1

Решение

Результатом оператора постинкремента является временный объект, даже если инкремент строго применяется только в конце выражения. Чтобы прочитать значение, необходимо lvalue, но временные объекты не являются lvalue: они обязательно исчезнут. Обратите внимание, что вы также прочитали бы значение во временное, сохранив неопределенное значение в a,

4

Другие решения

operator>> имеет перегрузку, которая занимает int&, Результат a-- является rvalue, и вы не можете привязать неконстантную ссылку к rvalue.

1

По вопросам рекламы [email protected]