std:: isfinite
|
定义于头文件
<cmath>
|
||
| (1) | ||
|
bool
isfinite
(
float
num
)
;
bool
isfinite
(
double
num
)
;
|
(C++11 起)
(C++23 前) |
|
|
constexpr
bool
isfinite
(
/*浮点类型*/
num
)
;
|
(C++23 起) | |
|
SIMD 重载
(C++26 起)
|
||
|
定义于头文件
<simd>
|
||
|
template
<
/*数学浮点类型*/
V
>
constexpr
typename
/*推导出的 SIMD 类型*/
<
V
>
::
mask_type
|
(S) | (C++26 起) |
|
定义于头文件
<cmath>
|
||
|
template
<
class
Integer
>
bool isfinite ( Integer num ) ; |
(A) |
(C++11 起)
(C++23 起为 constexpr) |
|
S)
SIMD 重载对
v_num
执行逐元素的
std::isfinite
操作。
|
(since C++26) |
目录 |
参数
| num | - | 浮点数或整数值 |
| v_num | - | 数据并行对象,其特化为 std::basic_simd ,且其元素类型为浮点类型 |
返回值
[
0
,
v_num.
size
(
)
)
内的
i
。
注释
额外的重载不需要完全按照 (A) 提供。它们只需确保对于整数类型的实参 num , std :: isfinite ( num ) 与 std :: isfinite ( static_cast < double > ( num ) ) 具有相同效果。
示例
#include <cfloat> #include <cmath> #include <iostream> int main() { std::cout << std::boolalpha << "isfinite(NaN) = " << std::isfinite(NAN) << '\n' << "isfinite(Inf) = " << std::isfinite(INFINITY) << '\n' << "isfinite(-Inf) = " << std::isfinite(-INFINITY) << '\n' << "isfinite(HUGE_VAL) = " << std::isfinite(HUGE_VAL) << '\n' << "isfinite(0.0) = " << std::isfinite(0.0) << '\n' << "isfinite(exp(800)) = " << std::isfinite(std::exp(800)) << '\n' << "isfinite(DBL_MIN/2.0) = " << std::isfinite(DBL_MIN / 2.0) << '\n'; }
输出:
isfinite(NaN) = false isfinite(Inf) = false isfinite(-Inf) = false isfinite(HUGE_VAL) = false isfinite(0.0) = true isfinite(exp(800)) = false isfinite(DBL_MIN/2.0) = true
参见
|
(C++11)
|
对给定的浮点数值进行分类
(函数) |
|
(C++11)
|
检查给定数值是否为无穷大
(函数) |
|
(C++11)
|
检查给定数值是否为 NaN
(函数) |
|
(C++11)
|
检查给定数值是否正规
(函数) |
|
C 文档
关于
isfinite
|
|