【发布时间】:2019-05-22 18:18:12
【问题描述】:
当我将编译器版本从 gcc 4.6 切换到 gcc 4.8 时,我收到以下错误 错误:重载 'isnan(double)' 的调用不明确。
这是因为在 c++11 中有不同的函数声明: C:int isnan(双) C++11: bool isnan(double)
来自cpluplus:
- 在 C 中,这被实现为返回 int 值的宏。 x 的类型应为 float、double 或 long double。
- 在 C++ 中,它通过每个浮点类型的函数重载来实现,每个都返回一个 bool 值。
我该如何解决这个问题?
【问题讨论】:
-
你怎么称呼它?向我们展示上下文。
-
juanchoupanza 建议有效。我之前已经声明了 using namespace std,但无论如何我都必须将它添加到 isnan 调用中,因为它是歧义的来源。
-
这正是
use namespace std的问题所在。 -
愿此作为一个教训。现在去停止ab
using namespace std。