Współpracownik przypadkowo napisał kod jak poniżej:Dlaczego kompilowany jest kod "foo :: foo :: foo :: foob"?
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 kompiluje to.
Jaka jest reguła, która powoduje, że ta kompilacja?
można być nieco bardziej szczegółowe dotyczące tego, co część nie oczekiwać, aby skompilować czysto? – neuhaus
Nie ma: https://godbolt.org/g/j2AbVn – Timbo
Istnieje brakujący plik include, a dla pętli for brakuje instrukcji, ale poza tym kompiluje – Johan