gpt4 book ai didi

c++ - 与类型同名的变量 - 哪个编译器是正确的?

转载 作者:IT老高 更新时间:2023-10-28 23:01:40 26 4
gpt4 key购买 nike

在这段代码中:

typedef int foo;

struct S
{
foo foo;
};

int main() {}

所有版本的 clang -std=c++14 都接受此代码,但是所有版本的 g++ -std=c++14 报告:

5 : error: declaration of 'foo S::foo' [-fpermissive]
foo foo;
^
1 : error: changes meaning of 'foo' from 'typedef int foo' [-fpermissive]

代码正确吗?

最佳答案

代码错误。 typedef 是现有类型的新名称。所以你不能创建一个类型名称像 foo foo; 等于 int int 的变量。

g++ -std=c++14 是正确的。

Also refer this question

关于c++ - 与类型同名的变量 - 哪个编译器是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450095/

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