当我将编译器版本从gcc 4.6切换到gcc 4.8时,出现以下错误 错误:重载的'isnan(double)'调用不明确。将isnan移植到C++ 11
这是因为在C++ 11有differend函数声明: C:INT isnan(双) C++ 11:布尔isnan(双)
从cpluplus:
- 在C中,这被实现为一个返回int值的宏。 x的类型应为float,double或long double。
- 在C++中,它针对每个浮点类型都实现了函数重载,每个都返回一个bool值。
我该如何解决这个问题?
你怎么叫它?向我们展示上下文。 –
juanchoupanza建议工作。我之前已经声明过使用名称空间,但是我不得不将它预先添加到isnan调用中,因为它是模糊性的来源。 –
这正是'使用命名空间std'到处都是什么问题。 –