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 객체가 크거나 같은지 비교 (클래스 템플릿)

더 알아보기 (Learn more)

cppreference