ratio_ratio
ratio_ratio (컴파일 타임 유리수)
std::ratio은 컴파일 타임 유리수 산술을 지원하는 클래스 템플릿이에요. 각 인스턴스화는 분자 Num과 분모 Denom이 컴파일 타임 상수로 표현 가능하다면 임의의 유한 유리수를 정확히 표현해요. C++11부터 사용할 수 있어요.
출처: cppreference
본문
<ratio> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.
template<
std::intmax_t Num,
std::intmax_t Denom = 1
> class ratio;
(since C++11)
클래스 템플릿 std::ratio은 컴파일 타임 유리수 산술을 지원해요. 각 인스턴스화는 분자 Num과 분모 Denom이 컴파일 타임 상수로 표현 가능하다면 임의의 유한 유리수를 정확히 표현해요.
멤버 타입 (Member types)
| 멤버 타입 | 정의 |
|---|---|
| type | ratio<Num, Denom> |
멤버 상수 (Member constants)
| 멤버 상수 | 정의 |
|---|---|
| num | 약분된 분자 (std::intmax_t 타입) |
| den | 약분된 분모 (std::intmax_t 타입) |
분수는 자동으로 약분되고 Denom이 음수이면 부호가 조정돼요 (즉 분모가 항상 양수).
참고 (Notes)
std::ratio의 인스턴스는 유리수를 정확히 표현하므로 부동소수점으로 인한 오차 없이 컴파일 타임에 계산할 수 있어요.