一位同事不小心寫了這樣的代碼:爲什麼代碼「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編譯此。
這個編譯的規則是什麼?
你能成爲一個更具體一點關於哪一部分,你不要指望,以順利地編譯? – neuhaus
它沒有:https://godbolt.org/g/j2AbVn – Timbo
有一個缺少包含文件和for循環缺少一個語句,但除了它編譯 – Johan