У меня есть функция, которая выдает мне ошибку "невозможно преобразовать из 'int' в 'int &'", когда я пытаюсь скомпилировать ее.
int& preinc(int& x) {
return x++;
}
Если я заменю x ++ на x, он будеткомпилировать, но я не уверен, как это отличает его.Я думал, что x ++ возвращает x до того, как он увеличит x, поэтому не должен ли «return x ++» быть таким же, как «return x» в отношении того, что возвращает preinc?Если проблема связана с оператором ++, действующим на x, то почему он не выдаст ошибку, если я поставлю строку «x ++» до или после оператора return или заменим x ++ на ++ x?