numeric_ratio
numeric_ratio (컴파일 타임 유리수)
클래스 템플릿 std::ratio와 관련 템플릿들은 컴파일 타임 유리수 산술을 지원해요. 이 템플릿의 각 인스턴스화는 임의의 유한 유리수를 정확히 표현해요.
출처: cppreference
본문
컴파일 타임 분수 (Compile-time fractions)
<ratio> 헤더에 정의되어 있어요.
- ratio (C++11) — 정확한 유리분수를 표현 (클래스 템플릿)
표준 라이브러리는 SI 비율에 대응하는 편의 typedef를 제공해요. <ratio> 헤더에 정의되어 있어요.
| 타입 | 정의 |
|---|---|
| quecto (since C++26) | std::ratio<1, 1000000000000000000000000000000> (10⁻³⁰)¹ |
| ronto (since C++26) | std::ratio<1, 1000000000000000000000000000> (10⁻²⁷)¹ |
| yocto (since C++11) | std::ratio<1, 1000000000000000000000000> (10⁻²⁴)¹ |
| zepto (since C++11) | std::ratio<1, 1000000000000000000000> (10⁻²¹)¹ |
| atto (since C++11) | std::ratio<1, 1000000000000000000> (10⁻¹⁸) |
| femto (since C++11) | std::ratio<1, 1000000000000000> (10⁻¹⁵) |
| pico (since C++11) | std::ratio<1, 1000000000000> (10⁻¹²) |
| nano (since C++11) | std::ratio<1, 1000000000> (10⁻⁹) |
| micro (since C++11) | std::ratio<1, 1000000> (10⁻⁶) |
| milli (since C++11) | std::ratio<1, 1000> (10⁻³) |
| centi (since C++11) | std::ratio<1, 100> (10⁻²) |
| deci (since C++11) | std::ratio<1, 10> (10⁻¹) |
| deca (since C++11) | std::ratio<10, 1> (10¹) |
| hecto (since C++11) | std::ratio<100, 1> (10²) |
| kilo (since C++11) | std::ratio<1000, 1> (10³) |
| mega (since C++11) | std::ratio<1000000, 1> (10⁶) |
| giga (since C++11) | std::ratio<1000000000, 1> (10⁹) |
| tera (since C++11) | std::ratio<1000000000000, 1> (10¹²) |
| peta (since C++11) | std::ratio<1000000000000000, 1> (10¹⁵) |
| exa (since C++11) | std::ratio<1000000000000000000, 1> (10¹⁸) |
| zetta (since C++11) | std::ratio<1000000000000000000000, 1> (10²¹)² |
| yotta (since C++11) | std::ratio<1000000000000000000000000, 1> (10²⁴)² |
| ronna (since C++26) | std::ratio<1000000000000000000000000000, 1> (10²⁷)² |
| quetta (since C++26) | std::ratio<1000000000000000000000000000000, 1> (10³⁰)² |
- ¹ 이 typedef들은
std::intmax_t가 분모를 표현할 수 있을 때만 선언돼요. - ² 이 typedef들은
std::intmax_t가 분자를 표현할 수 있을 때만 선언돼요.
컴파일 타임 유리수 산술 (Compile-time rational arithmetic)
컴파일 타임에 ratio 객체에 산술 연산을 수행하는 여러 별칭 템플릿이 제공돼요. <ratio> 헤더에 정의되어 있어요.
- ratio_add (C++11) — 컴파일 타임에 두 ratio 객체 더하기 (별칭 템플릿)
- ratio_subtract (C++11) — 컴파일 타임에 두 ratio 객체 빼기 (별칭 템플릿)
- ratio_multiply (C++11) — 컴파일 타임에 두 ratio 객체 곱하기 (별칭 템플릿)
- ratio_divide (C++11) — 컴파일 타임에 두 ratio 객체 나누기 (별칭 템플릿)
컴파일 타임 유리수 비교 (Compile-time rational comparison)
컴파일 타임에 ratio 객체에 비교 연산을 수행하는 여러 클래스 템플릿이 제공돼요. <ratio> 헤더에 정의되어 있어요.
- ratio_equal (C++11) — 컴파일 타임에 두 ratio 객체가 같은지 비교 (클래스 템플릿)
- ratio_not_equal (C++11) — 컴파일 타임에 두 ratio 객체가 다른지 비교 (클래스 템플릿)
- ratio_less (C++11) — 컴파일 타임에 두 ratio 객체가 작은지 비교 (클래스 템플릿)
- ratio_less_equal (C++11) — 컴파일 타임에 두 ratio 객체가 작거나 같은지 비교 (클래스 템플릿)
- ratio_greater (C++11) — 컴파일 타임에 두 ratio 객체가 큰지 비교 (클래스 템플릿)
- ratio_greater_equal (C++11) — 컴파일 타임에 두 ratio 객체가 크거나 같은지 비교 (클래스 템플릿)