从具有glibc-2.5-25(suse 10.2)的计算机移植到具有glibc-2.3.2-6(suse 8.2)的计算机时,我的代码存在一个奇怪的问题。我在临时对象上使用了几种方法调用,但它们在较旧的计算机上不起作用。
class A
{
public:
A(int n) {}
void method() {}
};
int main()
{
A(10).method(); //here the compiler gives parse error before .
A a(10);
a.method(); //this works fine
}
是否可能由于较旧的libc版本而发生这种情况,或者可能是我的IDE中的设置(编译器设置)?
最佳答案
为什么libc版本会影响解析错误? g++版本会更有用。
gcc围绕3.4版更改了解析器,并解决了很多解析问题,这些问题在旧的yacc解析器中不容易解决。那可以解释你所看到的。