使用
时出现上述错误double x = log10(100);
我在其他类中使用过它,在同一个项目中并没有显示此错误。
我该如何解决?
非常感谢
Chintan
答案 0 :(得分:19)
该错误通常表示函数log10
有多个重载,并且它们中没有一个比其他特定调用的更好。例如,重载可能需要float
和double
:100
是一个int
,可以转换为任何一个并且转换是等效的,因此编译器无法确定最佳选项是。
您可以明确强制转换为其中一个重载:
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