Namespaces
Variants

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

From 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 객체를 컴파일 타임에 이상 비교
(클래스 템플릿)