私は次のコードを持っています:
ファイル: Foo.h
class Foo {
friend void Bar();
};
ファイル: Foo.cpp
void Bar() {};
ファイル Test.cpp
#include "Foo.h"
int main(void) {
Bar();
return 0;
}
VS2008 は、エラーや警告なしでこれをコンパイルします。G++ 4.3.4 レポート:
test.cpp: In function ‘int main()’:
test.cpp:8: error: ‘Bar’ was not declared in this scope
なんで?