Этот фрагмент компилируется в clang,
namespace A {
void f() {
void g();
g();
}
}
void A::g() { }
но GCC принимает только код, если g
определяется внутри пространства имен A
следующим образом:
namespace A {
void f() {
void g();
g();
}
void g() {}
}
Но я не считаю, что в [basic.link]/7 ничего не говорится о первом фрагменте выше.