gpt4 book ai didi

c++ - 将 isnan 移植到 c++11

转载 作者:IT老高 更新时间:2023-10-28 23:16:18 24 4
gpt4 key购买 nike

当我将编译器版本从 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 值。

我该如何解决这个问题?

最佳答案

虽然你可以通过不到处说 using namespace std; 来缓解这个问题,但你可以通过明确使用 std::isnan:

来避免它
#include <cmath>
#include <iostream>

int main()
{
double x = ....;
std::cout << std::boolalpha;
std::cout << std::isnan(x) << std::endl;
}

关于c++ - 将 isnan 移植到 c++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19022561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com