テンプレート関数と、関数 main で型 int の呼び出しを作成しました。
template <class T> T max (T a, T b) { }
int main() {
max(1,2);
}
ほとんどの C++ の書籍で述べられているように、int max(int,int)
関数は、コンパイラがmax(1,2)
.
しかし、別のファイルに の宣言を書いてint max(int,int)
呼び出したのですが、コンパイラ (実際にはリンカ) が の参照がmax(int,int)
見つからないというエラーをキャッチしました。
extern int max(int,int);
max(1,2); // Error:undefined reference to max(int,int)
では、何が問題なのか、ヘッダー ファイル宣言ではなく extern を使用して max(int,int) 関数を呼び出す方法を教えてください。
どうもありがとう。