【发布时间】:2009-10-05 13:50:29
【问题描述】:
isnormal、isnan等C函数有C++版本吗?我知道我可以使用 C++ 中的 C 函数,但我总是很想知道是否有一些仅限 C++ 的替代方案。
【问题讨论】:
标签: c++ floating-point numbers
isnormal、isnan等C函数有C++版本吗?我知道我可以使用 C++ 中的 C 函数,但我总是很想知道是否有一些仅限 C++ 的替代方案。
【问题讨论】:
标签: c++ floating-point numbers
它们包含在 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);
【讨论】:
stl 中没有这样的功能。 您可以在参考中检查: cppreference
C 功能被放置在 C++ 中,API 可通过 没有后缀“*.h”和前缀“c”的标题 例子
<cstdlib>
但我确定你知道。
如果您正在寻找类似的东西,您可能会在令人惊叹的 boost 库中找到许多类似 C 的函数。大多数课程都会被引入新的 C++ 标准,因此值得学习。
【讨论】:
据我所知没有。在 STL 中似乎没有。由于这是一个如此简单的功能,我猜他们不想花时间替换它。旧的 C 版本工作正常。我想说继续使用 C isnormal()。
【讨论】: