namespace M{
void f();
void M::f(){}
}
int main(){}
Приведенный выше код дает такую ошибку:
"ComeauTest.c", строка 3: ошибка: полное имя не допускается в член пространства имен декларация void M :: f () {}
И
G ++ также выдает ошибку.
Но
VS2010 компилируется нормально.
Мои вопросы:
a) Каково ожидаемое поведение?
b) $ 7.3.1.2, похоже, не говорит об этом ограничении. Какая часть стандарта определяет поведение такого кода?