1. ホーム
  2. c++

[解決済み] オーバーロードされた関数の複数のインスタンスが引数リストに一致する。

2022-02-03 08:21:22

質問

を使用すると、上記のエラーが発生します。

double x = log10(100);

同じプロジェクト内の他のクラスで使用したところ、このエラーは表示されませんでした。

どうすれば直るのでしょうか?

ありがとうございました。

チンタン

解決方法は?

このエラーは、通常、関数に複数のオーバーロードがあることを示しています。 log10 で、そのどれもが より良い は、その特定の呼び出しに対して他のものより優れています。例えば、オーバーロードは floatdouble : 100int のどちらにも変換でき、その変換は等価であるため、コンパイラーは ベスト というオプションがあります。

明示的にオーバーロードの1つに強制的に変換させることができます。

double x = log10( 100. );    // 100. is a double
float  y = log10( 100f );    // 100f is a float
int i = 100;
double z = log10( static_cast<double>(i) ); // or cast