std::numeric_limits<T>::has_denorm_loss
static const bool has_denorm_loss;
|
(C++11까지) | |
static constexpr bool has_denorm_loss;
|
(C++11부터) (C++23에서 폐기됨) |
|
std::numeric_limits<T>::has_denorm_loss의 값은, 비정규 수를 생성할 때 정밀도 손실을 부정확한 결과가 아닌 비정규화 손실로 감지하는 모든 부동소수점 타입 true에 대해 T입니다 (아래 참조).
표준 특수화
T
|
std:: numeric_limits < T > :: has_denorm_loss 의 값 |
| /* non-specialized */ | false |
| bool | false |
| char | false |
| signed char | false |
| unsigned char | false |
| wchar_t | false |
| char8_t (C++20부터) | false |
| char16_t (C++11부터) | false |
| char32_t (C++11부터) | false |
| short | false |
| unsigned short | false |
| int | false |
| unsigned int | false |
| long | false |
| unsigned long | false |
| long long (C++11부터) | false |
| unsigned long long (C++11부터) | false |
| float | 구현 정의 |
| double | 구현 정의 |
| long double | 구현 정의 |
참고 사항
표준을 준수하는 IEEE 754 부동소수점 구현에서는 서브노멀 숫자의 생성과 관련된 정밀도 손실이 발생할 경우 이를 감지해야 하며, 다음 두 가지 방식 중 하나로 이를 수행할 수 있습니다:
- 비정규화 손실(Denormalization loss): 제공된 결과가 지수 범위가 무한정이었을 경우 계산되었을 결과와 다릅니다.
- 부정확한 결과(Inexact result): 제공된 결과가 지수 범위와 정밀도가 모두 무한정이었을 경우 계산되었을 결과와 다릅니다.
비정규화 손실 메커니즘의 구현이 존재하지 않으며 (부정확한 결과로 인해 반올림 후 정밀도 손실이 감지됨), 이 옵션은 IEEE Std 754의 2008년 개정판에서 제거되었습니다.
libstdc++, libc++, libCstd, stlport4는 모든 부동 소수점 타입에 대해 이 상수를 false 로 정의합니다. Microsoft Visual Studio는 모든 부동 소수점 타입에 대해 true 로 정의합니다.
모든 부동 소수점 연산과 마찬가지로, 정확도 손실이 발생하면 FE_INEXACT 가 발생할 수 있습니다.
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
참고 항목
|
[static]
|
부동소수점 타입이 반올림 전에 아주 작은 값을 감지하는지 식별합니다
(public static member constant) |
|
[static]
|
부동소수점 타입이 사용하는 비정규화 스타일을 식별합니다
(public static member constant) |