mizore_chan回答ポイント 70ptウォッチ

C++のテンプレートに関する質問です。

下記のソースをcygwinのgcc(v4.3.4)でコンパイルするとエラーとなります。

エラー内容
$ gcc -o test temp5.cpp -lstdc++
temp5.cpp: In function ‘int main()’:
temp5.cpp:12: error: call of overloaded ‘max(int, int)’ is ambiguous
temp5.cpp:6: note: candidates are: X max(X, X) [with X = int]
/usr/lib/gcc/i686-pc-cygwin/4.3.4/include/c++/bits/stl_algobase.h:210: note:
const _Tp& std::max(const _Tp&, const _Tp&) [with _Tp = int]


何が間違っているのか、教えてください。
VC++6.0ではコンパイル可能です。
宜しくお願いします。

以下ソース
---------------------------------
#include <iostream>
using namespace std;

template <typename X>

X max(X var1 , X var2) {
if (var1 > var2) return var1;
else return var2;
}

int main() {
cout << max(10 , 100);
return 0;
}

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2011-04-08 16:38:16
終了日時
2011-04-15 16:40:02
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

i68640cygwin112VC++175C++540gcc113コンパイル428テンプレート1269const51

人気の質問

メニュー

PC版