临时对象, vector(c).swap(c)
vector的这种swap shrink调用到了临时对象的非const方法, 感觉比较诡异;
简化一下:
struct Foo{
int a;
void change(){a=42;}
};
我用vc7.1试了下:
Foo().change();是允许的;
而:
Foo().a = 42;
却要求 error C2106: '=' : left operand must be l-value
哪位解释下, 或者哪本书里讨论了这个冬冬?
thanks,