标准库头文件 <ratio>

来自cppreference.com
< cpp‎ | header
 
 
 

此头文件是编译时有理数算术库的一部分。

表示精确的有理分数
(类模板)
算术
(C++11)
在编译时相加两个 ratio 对象
(别名模板)
在编译时相减两个 ratio 对象
(别名模板)
在编译时相乘两个 ratio 对象
(别名模板)
在编译时相除两个 ratio 对象
(别名模板)
比较
在编译时比较两个 ratio 对象的相等性
(类模板)
在编译时比较两个 ratio 对象的不相等性
(类模板)
在编译时比较两个 ratio 对象的小于关系
(类模板)
在编译时比较两个 ratio 对象的小于或等于关系
(类模板)
在编译时比较两个 ratio 对象的大于关系
(类模板)
在编译时比较两个 ratio 对象的大于或等于关系
(类模板)
常量
yocto std::ratio<1, 1000000000000000000000000>,若 std::intmax_t 能表示分母
zepto std::ratio<1, 1000000000000000000000>,若 std::intmax_t 能表示分母
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>,若 std::intmax_t 能表示分子
yotta std::ratio<1000000000000000000000000, 1>,若 std::intmax_t 能表示分子

概要

namespace std {
 
    // 类模板 ratio
    template <intmax_t N, intmax_t D = 1>
    class ratio {
    public:
        typedef ratio<num, den> type;
        static constexpr intmax_t num;
        static constexpr intmax_t den;
    };
 
 
    // ratio 算术
    template <class R1, class   R2> using   ratio_add      = /*ratio*/;
    template <class R1, class   R2> using   ratio_subtract = /*ratio*/;
    template <class R1, class   R2> using   ratio_multiply = /*ratio*/;
    template <class R1, class   R2> using   ratio_divide   = /*ratio*/;
 
    // ratio 比较
    template <class R1, class R2> struct ratio_equal;           
    template <class R1, class R2> struct ratio_not_equal;           
    template <class R1, class R2> struct ratio_less;      
    template <class R1, class R2> struct ratio_less_equal;          
    template <class R1, class R2> struct ratio_greater;         
    template <class R1, class R2> struct ratio_greater_equal;  
 
    // 便利 SI typedef
    typedef ratio<1, 1000000000000000000000000> yocto;
    typedef ratio<1,    1000000000000000000000> zepto;
    typedef ratio<1,       1000000000000000000> atto;   
    typedef ratio<1,          1000000000000000> femto;  
    typedef ratio<1,             1000000000000> pico;   
    typedef ratio<1,                1000000000> nano;   
    typedef ratio<1,                   1000000> micro;  
    typedef ratio<1,                      1000> milli;  
    typedef ratio<1,                       100> centi;  
    typedef ratio<1,                        10> deci;   
    typedef ratio<                       10, 1> deca;   
    typedef ratio<                      100, 1> hecto;  
    typedef ratio<                     1000, 1> kilo;   
    typedef ratio<                  1000000, 1> mega;   
    typedef ratio<               1000000000, 1> giga;   
    typedef ratio<            1000000000000, 1> tera;   
    typedef ratio<         1000000000000000, 1> peta;   
    typedef ratio<      1000000000000000000, 1> exa;    
    typedef ratio<   1000000000000000000000, 1> zetta;
    typedef ratio<1000000000000000000000000, 1> yotta;
 
}