考虑下面的最小示例。
#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 上试过。谢谢。