编译时有理数算术 (C++11 起)
类模板 std::ratio 及相关的模板提供编译时有理数算术支持。此模板的每个实例化都准确表示任一有限有理数。
编译时分数
| 
 在标头  
<ratio> 定义 | 
|
| 
 (C++11) 
 | 
表示精确的有理分数 (类模板)  | 
标准库提供以下对应国际单位制比例的便利 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>      (101) | 
hecto (C++11 起) | 
std::ratio<100, 1>     (102) | 
kilo (C++11 起) | 
std::ratio<1000, 1>    (103) | 
mega (C++11 起) | 
std::ratio<1000000, 1> (106) | 
giga (C++11 起) | 
std::ratio<1000000000, 1>          (109) | 
tera (C++11 起) | 
std::ratio<1000000000000, 1>       (1012) | 
peta (C++11 起) | 
std::ratio<1000000000000000, 1>    (1015) | 
exa (C++11 起) | 
std::ratio<1000000000000000000, 1> (1018) | 
zetta (C++11 起) | 
std::ratio<1000000000000000000000, 1>          (1021)[2] | 
yotta (C++11 起) | 
std::ratio<1000000000000000000000000, 1>       (1024)[2] | 
ronna (C++26 起) | 
std::ratio<1000000000000000000000000000, 1>    (1027)[2] | 
quetta (C++26 起) | 
std::ratio<1000000000000000000000000000000, 1> (1030)[2] | 
- ↑ 1.0 1.1 1.2 1.3 这些 typedef 只有在 std::intmax_t 可以表示分母的情况下才会声明。
 - ↑ 2.0 2.1 2.2 2.3 这些 typedef 只有在 std::intmax_t 可以表示分子的情况下才会声明。
 
编译时有理数算术
提供数个别名模板,它们在编译时进行 ratio 对象上的算术运算。
| 
 在标头  
<ratio> 定义 | 
|
| 
 (C++11) 
 | 
在编译时相加两个 ratio 对象(别名模板)  | 
| 
 (C++11) 
 | 
在编译时相减两个 ratio 对象(别名模板)  | 
| 
 (C++11) 
 | 
在编译时相乘两个 ratio 对象(别名模板)  | 
| 
 (C++11) 
 | 
在编译时相除两个 ratio 对象(别名模板)  | 
编译时有理数比较
提供数个类模板,它们在编译时进行 ratio 对象上的比较运算。
| 
 在标头  
<ratio> 定义 | 
|
| 
 (C++11) 
 | 
在编译时比较两个 ratio 对象的相等性(类模板)  | 
| 
 (C++11) 
 | 
在编译时比较两个 ratio 对象的不相等性(类模板)  | 
| 
 (C++11) 
 | 
在编译时比较两个 ratio 对象的小于关系(类模板)  | 
| 
 (C++11) 
 | 
在编译时比较两个 ratio 对象的小于或等于关系(类模板)  | 
| 
 (C++11) 
 | 
在编译时比较两个 ratio 对象的大于关系(类模板)  | 
| 
 (C++11) 
 | 
在编译时比较两个 ratio 对象的大于或等于关系(类模板)  |