Przypisywanie wartości do zwracanej funkcji

#include<iostream>
using namespace std;

int &fun()
{
  static int x = 10;
  return x;
}
int main()
{
   fun() = 30;
   cout << fun();
   return 0;
}

Funkcja fun () zwraca wartość przez referencję, ale w metodzie main () przypisuję funkcję int do działania. Idealnie kompilator powinien wyświetlać błąd taki jak wymagana wartość l, ale w powyższym przypadku program działa poprawnie. Dlaczego tak jest?

questionAnswers(7)

yourAnswerToTheQuestion