Questo frammento compila in clang,risultati contraddittori tra GCC e clang correlate a [basic.link]/7 in C++ standard
namespace A {
void f() {
void g();
g();
}
}
void A::g() { }
ma GCC accetta solo il codice se g
è definita all'interno del namespace A
come segue:
namespace A {
void f() {
void g();
g();
}
void g() {}
}
Ma credo che non c'è nulla in [basic.link]/7 non consentendo il primo frammento di codice.
Hai ragione. Ho mancato di notare [namespace.memdef]/2. (+1) – Leon
A proposito, c'è qualcosa che parla effettivamente contro le funzioni definite localmente? Apparentemente, le classi locali possono definire le loro funzioni membro localmente. – Columbo
@Columbo [dcl.fct.def.general]/p2 –