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의 인스턴스는 유리수를 정확히 표현하므로 부동소수점으로 인한 오차 없이 컴파일 타임에 계산할 수 있어요.

더 알아보기 (Learn more)

cppreference