The postfix increment operator does not intreturn a temporary value. A temporary value cannot be associated with a reference to a non-constant lvalue, because changing this temporary value does not make sense. You are trying to associate a temporary with int&, which gives an error.
, pre-increment (++a), ( , const T&):
int f(int a)
{
return a;
}