【问题标题】:C++ version of isnormal()isnormal() 的 C++ 版本
【发布时间】:2009-10-05 13:50:29
【问题描述】:

isnormal、isnan等C函数有C++版本吗?我知道我可以使用 C++ 中的 C 函数,但我总是很想知道是否有一些仅限 C++ 的替代方案。

【问题讨论】:

    标签: c++ floating-point numbers


    【解决方案1】:

    它们包含在 C++0x 草案的<cmath> 中:

    template <class T> int fpclassify(T x);
    template <class T> bool isfinite(T x);
    template <class T> bool isinf(T x);
    template <class T> bool isnan(T x);
    template <class T> bool isnormal(T x);
    

    【讨论】:

    • 它们是否已包含在已发布的标准版本中?
    【解决方案2】:

    stl 中没有这样的功能。 您可以在参考中检查: cppreference

    C 功能被放置在 C++ 中,API 可通过 没有后缀“*.h”和前缀“c”的标题 例子

    <cstdlib>
    

    但我确定你知道。

    如果您正在寻找类似的东西,您可能会在令人惊叹的 boost 库中找到许多类似 C 的函数。大多数课程都会被引入新的 C++ 标准,因此值得学习。

    boost

    【讨论】:

    【解决方案3】:

    据我所知没有。在 STL 中似乎没有。由于这是一个如此简单的功能,我猜他们不想花时间替换它。旧的 C 版本工作正常。我想说继续使用 C isnormal()。

    【讨论】:

      猜你喜欢
      • 2016-03-14
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 2010-09-20
      • 2011-04-29
      相关资源
      最近更新 更多