Привязка rvalue к неконстантной ссылке через приведение указателя?

Я не понимаю, как следующий код компилируется / не компилируется:

struct Temp
{
  int i;
};

int main(int argc, char * argv[])
{
   //Temp &ref1 = (Temp){42}; // Error, as expected
   Temp &ref2 = *(Temp*)&(Temp){42}; // A-OK
   std::cerr << ref2.i << std::endl;
   return 0;
}

Я использую g ++ 4.4.4.

7
задан Mat 4 May 2015 в 10:17
поделиться