私はmy_program.cpp
とそのヘッダmy_program.h
の2つのファイルを持っています。次のようにiostreamとwstringを含む奇妙なC++の動作
#include "my_program.h"
using namespace std;
my_program.h
は、wstring
を返す関数へのポインタを含む:
using namespace std;
typedef wstring (*my_function)(wstring, int, int, int, int);
プログラム(この状態ではコンパイルされない
my_program.cpp
はのみこれを含んtypedefで止まります... ISO C++は型なしの 'wstring'の宣言を禁じていますが)#include "my_program.h"
の前に#include <iostream>
を追加すると.cppプログラムは、奇跡的にコンパイルします。
どうしてですか?私は愚かな間違いをしなかったことを願っています。そして、今私は笑われるつもりです。
このtypedef宣言を完全に読むことはできませんが、そのtypedefの新しい型名はどこですか? – Frizi
'#_include'を 'my_porgram.h'に入れましたか? –
scientiaesthete
@Frizi 'my_function'はtypedefの名前です。 wstringを返し、wstring、int、int ...をパラメータとして持つ関数へのポインタです。 –