在这段代码中:
typedef int foo;
struct S
{
foo foo;
};
int main() {}
Run Code Online (Sandbox Code Playgroud)
所有版本的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]
Run Code Online (Sandbox Code Playgroud)
代码是否正确?