jjzjj

c++ - 为什么编译代码 "foo::foo::foo::foob"?

这个问题在这里已经有了答案:Whyisthereaninjectedclassname?(1个回答)关闭5年前。一位同事不小心写了这样的代码:structfoo{foo():baz(foobar){}enumbar{foobar,fbar,foob};barbaz;};voidf(){for(autox:{foo::foobar,foo::fbar,foo::foo::foo::foob});//...}GCC5.1.0编译这个。编译的规则是什么? 最佳答案 injected-class-name这里用到了,thenameofthe