質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

1897閲覧

C++言語のテンプレートでのコンパイルエラー

beimax

総合スコア7

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/04/22 07:54

質問

テンプレートを使って、引数の型に関わらず、大きい方を返す関数を作りたかったのですが、次のようなエラーが出てしまいました。

コンパイル時のエラー

イメージ説明

コード

#include <iostream> #include <string> using namespace std; template <typename T> T max(T a, T b) { if (a > b) { return a; } return b; } int main() { cout << max<int>(1, 2) << endl; cout << max<double>(1.75, 3.12) << endl; string s1 = "aiu", s2 = "eo"; cout << max<string>(s1, s2) << endl; return 0; }

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

maxの関数呼び出しで、std::maxと自作のmaxの2つ候補があると言われています。
新しくnamespaceを設けて、その中でmaxを実装して、hoge::maxのように呼び出すと解消するのではないでしょうか。

投稿2020/04/22 08:04

takapi_cs

総合スコア349

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beimax

2020/04/22 09:27

解決しました!丁寧なご回答ありがとうございます!
guest

0

using namespace std;のせいでstd::maxmaxどちらを利用すべきかをコンパイラが決められません。
明示的に::maxにする方法があります。

投稿2020/04/22 08:02

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

beimax

2020/04/22 09:28

解決しました!ありがとうございます!
guest

0

algorithmに含まれるstd::maxでエラーとなっているようです。
どこかのヘッダファイルからalgorithmがインクルードされているのでしょう。

投稿2020/04/22 08:02

編集2020/04/22 08:03
SHOMI

総合スコア4079

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SHOMI

2020/04/22 08:19

あなたが書いたmaxとstd::maxどちらを呼べばよいかが曖昧(ambiguous)とエラーになっています。 対策はasmさんとtakapi_csさんが書かれた通りです。
beimax

2020/04/22 09:28

ご回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問