gpt4 book ai didi

c++ - 调用临时对象的方法会导致旧 c 库的编译器错误

转载 作者:太空狗 更新时间:2023-10-29 12:08:09 26 4
gpt4 key购买 nike

从装有 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 解析器中不容易修复的解析问题。这可以解释您所看到的。

关于c++ - 调用临时对象的方法会导致旧 c 库的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2296744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com