以下の最小限の例を検討してください。
#include<iostream>
struct A
{
A(){std::cout<<"def"<<'\n';}
void foo()&{std::cout<<"called on lvalue"<<'\n';}
};
int main()
{
A a;
a.foo();
A().foo();
return 0;
}
expecting ';' at the end of declaration
これにより、とについてエラーが発生しますand expected un-qualified-id before '{'
。
私が間違っていることを知ることができますか?実際のコードでは、一時的に非静的メンバー関数を呼び出すことを避けたいと考えています。
gcc 4.7.2 と vc2010 で試しました。ありがとう。