Нестатический член в качестве аргумента по умолчанию для нестатической функции-члена

struct X
{
   X():mem(42){}
   void f(int param = mem) //ERROR
   {
      //do something
   }
private: 
   int mem;
};

Кто-нибудь может назвать мне хотя бы одну причину, почему это незаконно в C ++ ?! То есть, я знаю, что это ошибка, я знаю, что означает ошибка, я просто не могу понять, почему это было бы незаконно!

28
задан Bo Persson 20 March 2012 в 18:35
поделиться