Namespaces
Variants

Compile-time rational arithmetic (since C++11)

From ko.cppreference.net
Metaprogramming library
Type traits
Type categories
(C++11)
(C++11) ( DR* )
Type properties
(C++11)
(C++11)
(C++14)
(C++11) (deprecated in C++26)
(C++11) ( until C++20* )
(C++11) (deprecated in C++20)
(C++11)
Type trait constants
Metafunctions
(C++17)
Supported operations
Relationships and property queries
Type modifications
Type transformations
(C++11) (deprecated in C++23)
(C++11) (deprecated in C++23)
(C++11)
(C++11) ( until C++20* ) (C++17)

Compile-time rational arithmetic
Compile-time integer sequences
Compile time rational arithmetic

클래스 템플릿 std::ratio 와 관련 템플릿들은 컴파일 시간 유리수 연산 지원을 제공합니다. 이 템플릿의 각 인스턴스화는 모든 유한 유리수를 정확하게 표현합니다.

컴파일 타임 분수

헤더 파일에 정의됨 <ratio>
(C++11)
정확한 유리수 분수를 표현함
(클래스 템플릿)

표준 라이브러리는 SI 비율에 해당하는 다음과 같은 편의 typedef들을 제공합니다:

헤더에 정의됨 <ratio>
유형 정의
quecto (C++26부터) std:: ratio < 1 , 1000000000000000000000000000000 > (10 -30 ) [1]
ronto (C++26부터) std:: ratio < 1 , 1000000000000000000000000000 > (10 -27 ) [1]
yocto (C++11 이후) std:: ratio < 1 , 1000000000000000000000000 > (10 -24 ) [1]
zepto (C++11 이후) std:: ratio < 1 , 1000000000000000000000 > (10 -21 ) [1]
atto (C++11 이후) std:: ratio < 1 , 1000000000000000000 > (10 -18 )
femto (C++11 이후) std:: ratio < 1 , 1000000000000000 > (10 -15 )
pico (C++11 이후) std:: ratio < 1 , 1000000000000 > (10 -12 )
nano (C++11 이후) std:: ratio < 1 , 1000000000 > (10 -9 )
micro (C++11 이후) std:: ratio < 1 , 1000000 > (10 -6 )
milli (C++11 이후) std:: ratio < 1 , 1000 > (10 -3 )
centi (C++11 이후) std:: ratio < 1 , 100 > (10 -2 )
deci (C++11 이후) std:: ratio < 1 , 10 > (10 -1 )
deca (C++11 이후) std:: ratio < 10 , 1 > (10 1 )
hecto (C++11 이후) std:: ratio < 100 , 1 > (10 2 )
kilo (C++11 이후) std:: ratio < 1000 , 1 > (10 3 )
mega (C++11 이후) std:: ratio < 1000000 , 1 > (10 6 )
giga (C++11 이후) std:: ratio < 1000000000 , 1 > (10 9 )
tera (C++11 이후) std:: ratio < 1000000000000 , 1 > (10 12 )
peta (C++11 이후) std:: ratio < 1000000000000000 , 1 > (10 15 )
exa (C++11 이후) std:: ratio < 1000000000000000000 , 1 > (10 18 )
zetta (C++11 이후) std:: ratio < 1000000000000000000000 , 1 > (10 21 ) [2]
yotta (C++11 이후) std:: ratio < 1000000000000000000000000 , 1 > (10 24 ) [2]
ronna (C++26부터) std:: ratio < 1000000000000000000000000000 , 1 > (10 27 ) [2]
quetta (C++26부터) std:: ratio < 1000000000000000000000000000000 , 1 > (10 30 ) [2]
  1. ↑ 1.0 1.1 1.2 1.3 이 typedef들은 std::intmax_t 가 분모를 표현할 수 있는 경우에만 선언됩니다.
  2. ↑ 2.0 2.1 2.2 2.3 이 typedef들은 std::intmax_t 가 분자를 표현할 수 있는 경우에만 선언됩니다.

컴파일 시 유리수 연산

컴파일 타임에 ratio 객체에 대해 산술 연산을 수행하는 여러 별칭 템플릿이 제공됩니다.

헤더 파일에 정의됨 <ratio>
(C++11)
두 개의 ratio 객체를 컴파일 타임에 더함
(alias template)
두 개의 ratio 객체를 컴파일 타임에 뺌
(alias template)
두 개의 ratio 객체를 컴파일 타임에 곱함
(alias template)
두 개의 ratio 객체를 컴파일 타임에 나눔
(alias template)

컴파일 시점 유리수 비교

컴파일 타임에 ratio 객체들에 대해 비교 연산을 수행하는 여러 클래스 템플릿이 제공됩니다.

헤더 파일에 정의됨 <ratio>
두 ratio 객체를 컴파일 타임에 동등성 비교
(클래스 템플릿)
두 ratio 객체를 컴파일 타임에 부등식 비교
(클래스 템플릿)
(C++11)
두 ratio 객체를 컴파일 타임에 미만 비교
(클래스 템플릿)
두 ratio 객체를 컴파일 타임에 이하 비교
(클래스 템플릿)
두 ratio 객체를 컴파일 타임에 초과 비교
(클래스 템플릿)
두 ratio 객체를 컴파일 타임에 이상 비교
(클래스 템플릿)