What is the problem of rvalue incrementing? Is there any convincing answer, why this code should be illegal in C++:

```
int f(int x) {return x + 1;}
int main() {
  std::cout << ++f(2) << '\n';
  return 0;
}

```