一位同事意外地编写了以下代码:
struct foo {
foo() : baz(foobar) {}
enum bar {foobar, fbar, foob};
bar baz;
};
void f() {
for( auto x : { foo::foobar,
foo::fbar,
foo::
foo::
foo::foob } );
// ...
}
GCC 5.1.0可以编译此内容。
是什么规则使得这个内容能够被编译?
struct foo { static const int v{42}; }; auto x{foo::foo::foo::foo::foo::v};
。 - user7860670