そんな状況で
namespace n {
void f() {
void another_function();
}
}
関数another_function
は名前空間内n
または外部で定義する必要がありますか? VS 2012 ( 11 月の CTPを使用) は、外部にある必要があると述べており、Mac の GCC 4.7.2 は内部にある必要があると述べています。間違ったことをすると、リンカーから未定義のシンボル エラーが発生します。
私は通常、GCC の方が標準に準拠していると信じていますが、これは C++ であり、確実なことはありません。