Namespaces
Variants

std:: isinf

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
isinf
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
헤더에 정의됨 <cmath>
(1)
bool isinf ( float num ) ;

bool isinf ( double num ) ;

bool isinf ( long double num ) ;
(C++11부터)
(C++23까지)
constexpr bool isinf ( /*floating-point-type*/ num ) ;
(C++23부터)
SIMD 오버로드 (C++26부터)
헤더에 정의됨 <simd>
template < /*math-floating-point*/ V >

constexpr typename /*deduced-simd-t*/ < V > :: mask_type

isinf ( const V & v_num ) ;
(S) (C++26부터)
헤더에 정의됨 <cmath>
template < class Integer >
bool isinf ( Integer num ) ;
(A) (C++11부터)
(C++23부터 constexpr)
1) 주어진 부동 소수점 숫자 num 가 양의 무한대 또는 음의 무한대인지 판단합니다. 라이브러리는 매개변수 num 의 타입으로 모든 cv-한정자가 없는 부동 소수점 타입에 대한 오버로드를 제공합니다. (C++23 이후)
S) SIMD 오버로드는 v_num 에 대해 요소별(element-wise) std::isinf 를 수행합니다.
(정의는 math-floating-point deduced-simd-t 참조)
(C++26부터)
A) 모든 정수 타입에 대해 추가 오버로드가 제공되며, 이들은 double 로 처리됩니다.

목차

매개변수

num - 부동 소수점 또는 정수 값
v_num - 요소 타입이 부동 소수점 타입인 std::basic_simd 전문화의 데이터 병렬 객체

반환값

1) true 만약 num 이 무한대이면, false 그렇지 않으면.
S) i번째 요소가 v_num [ i ] 가 무한대일 경우 true 를, 그렇지 않을 경우 false 를 가지는 데이터-병렬 마스크 객체. 범위 [ 0 , v_num. size ( ) ) 내의 모든 i 에 대해 적용됨.

참고 사항

GCC Clang -ffinite-math 옵션을 지원합니다(이 옵션은 -ffast-math 에 의해 추가적으로 암시됨). 이 옵션은 각 컴파일러가 NaN, 무한대, 음의 영과 같은 특수 IEEE-754 부동 소수점 값이 존재하지 않는다고 가정하도록 허용합니다. 즉, 이 옵션 하에서 std::isinf 는 항상 false 를 반환한다고 가정됩니다.

추가 오버로드는 반드시 (A) 와 정확히 동일하게 제공될 필요는 없습니다. 정수 타입의 인자 num 에 대해, std :: isinf ( num ) std :: isinf ( static_cast < double > ( num ) ) 와 동일한 효과를 가지도록 보장하기에 충분하기만 하면 됩니다.

예제

#include <cfloat>
#include <cmath>
#include <iostream>
#include <limits>
int main()
{
    const double max = std::numeric_limits<double>::max();
    const double inf = std::numeric_limits<double>::infinity();
    std::cout << std::boolalpha
              << "isinf(NaN) = " << std::isinf(NAN) << '\n'
              << "isinf(Inf) = " << std::isinf(INFINITY) << '\n'
              << "isinf(max) = " << std::isinf(max) << '\n'
              << "isinf(inf) = " << std::isinf(inf) << '\n'
              << "isinf(0.0) = " << std::isinf(0.0) << '\n'
              << "isinf(exp(800)) = " << std::isinf(std::exp(800)) << '\n'
              << "isinf(DBL_MIN/2.0) = " << std::isinf(DBL_MIN / 2.0) << '\n';
}

출력:

isinf(NaN) = false
isinf(Inf) = true
isinf(max) = false
isinf(inf) = true
isinf(0.0) = false
isinf(exp(800)) = true
isinf(DBL_MIN/2.0) = false

참고 항목

(C++11)
주어진 부동소수점 값을 분류합니다
(함수)
(C++11)
주어진 숫자가 유한한 값을 가지는지 확인합니다
(함수)
(C++11)
주어진 숫자가 NaN인지 확인합니다
(함수)
(C++11)
주어진 숫자가 정규(normal)인지 확인합니다
(함수)