The class template std::ratio
and associated templates provide compiletime rational arithmetic support. Each instantiation of this template exactly represents any finite rational number.
Defined in header <ratio> 


(C++11)  represents exact rational fraction (class template) 
Several convenience typedefs that correspond to the SI ratios are provided by the standard library:
Defined in header <ratio> 


Type  Definition 
yocto  std::ratio<1, 1000000000000000000000000> , if std::intmax_t can represent the denominator 
zepto  std::ratio<1, 1000000000000000000000> , if std::intmax_t can represent the denominator 
atto  std::ratio<1, 1000000000000000000> 
femto  std::ratio<1, 1000000000000000> 
pico  std::ratio<1, 1000000000000> 
nano  std::ratio<1, 1000000000> 
micro  std::ratio<1, 1000000> 
milli  std::ratio<1, 1000> 
centi  std::ratio<1, 100> 
deci  std::ratio<1, 10> 
deca  std::ratio<10, 1> 
hecto  std::ratio<100, 1> 
kilo  std::ratio<1000, 1> 
mega  std::ratio<1000000, 1> 
giga  std::ratio<1000000000, 1> 
tera  std::ratio<1000000000000, 1> 
peta  std::ratio<1000000000000000, 1> 
exa  std::ratio<1000000000000000000, 1> 
zetta  std::ratio<1000000000000000000000, 1> , if std::intmax_t can represent the numerator 
yotta  std::ratio<1000000000000000000000000, 1> , if std::intmax_t can represent the numerator 
Several alias templates, that perform arithmetic operations on ratio
objects at compiletime are provided.
Defined in header <ratio> 


(C++11)  adds two ratio objects at compiletime (alias template) 
(C++11)  subtracts two ratio objects at compiletime (alias template) 
(C++11)  multiplies two ratio objects at compiletime (alias template) 
(C++11)  divides two ratio objects at compiletime (alias template) 
Several class templates, that perform comparison operations on ratio
objects at compiletime are provided.
Defined in header <ratio> 


(C++11)  compares two ratio objects for equality at compiletime (class template) 
(C++11)  compares two ratio objects for inequality at compiletime (class template) 
(C++11)  compares two ratio objects for less than at compiletime (class template) 
(C++11)  compares two ratio objects for less than or equal to at compiletime (class template) 
(C++11)  compares two ratio objects for greater than at compiletime (class template) 
(C++11)  compares two ratio objects for greater than or equal to at compiletime (class template) 
© cppreference.com
Licensed under the Creative Commons AttributionShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/ratio