2 つのファイルmy_program.cppとそのヘッダーがありmy_program.hます。
my_program.cppこれだけが含まれています:
#include "my_program.h"
using namespace std;
my_program.hwstring次のように、を返す関数へのポインタが含まれています。
using namespace std;
typedef wstring (*my_function)(wstring, int, int, int, int);
プログラムはこの状態ではコンパイルされません (typedef で停止します... ISO C++ は型のない 'wstring' の宣言を禁止していると言っています) が、.cpp ファイルに#include <iostream>前に追加する#include "my_program.h"と、プログラムは奇跡的にコンパイルされます。
なぜこれが起こるのですか?愚かな過ちを犯さなかったことを願うばかりで、笑われることになるでしょう。