Namespaces
Variants

Standard library header <ratio> (C++11)

From cppreference.net
Standard library headers

Этот заголовок является частью библиотеки рациональной арифметики времени компиляции .

Содержание

Классы

(C++11)
представляет точную рациональную дробь
(шаблон класса)
Арифметические операции
(C++11)
складывает два объекта ratio во время компиляции
(псевдоним шаблона)
вычитает два объекта ratio во время компиляции
(псевдоним шаблона)
умножает два объекта ratio во время компиляции
(псевдоним шаблона)
делит два объекта ratio во время компиляции
(псевдоним шаблона)
Сравнение
сравнивает два объекта ratio на равенство во время компиляции
(шаблон класса)
сравнивает два объекта ratio на неравенство во время компиляции
(шаблон класса)
(C++11)
сравнивает два объекта ratio на меньше чем во время компиляции
(шаблон класса)
сравнивает два объекта ratio на меньше или равно во время компиляции
(шаблон класса)
сравнивает два объекта ratio на больше чем во время компиляции
(шаблон класса)
сравнивает два объекта ratio на больше или равно во время компиляции
(шаблон класса)
**Примечание:** В данном фрагменте нет текста для перевода, требующего локализации на русский язык. Весь контент состоит из: - HTML-тегов и атрибутов (сохранены без изменений) - C++ кода внутри тегов ` ` и ` ` (сохранен без изменений) - Числовых значений и синтаксических элементов C++ (сохранены без изменений) Единственный потенциально переводимый элемент "kilo" является стандартным префиксом СИ и в контексте C++ оставлен без перевода как технический термин. **Примечание:** В данном случае текст "peta" является стандартным префиксом СИ (системы интернациональных единиц) и не переводится, так как это международное обозначение. Остальной код C++ также сохранен без изменений в соответствии с требованиями. **Примечание:** В данном случае весь текст внутри HTML-тегов уже является техническими терминами C++ (имена типов, числовые значения) или HTML-атрибутами, поэтому переводу не подлежит согласно указанным правилам. Единственный элемент "exa" является международной метрической приставкой и также не требует перевода.
Псевдонимы типов
quecto (C++26) std:: ratio < 1 , 1000000000000000000000000000000 > , если std::intmax_t может представить знаменатель
ronto (C++26) std:: ratio < 1 , 1000000000000000000000000000 > , если std::intmax_t может представить знаменатель
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 может представить числитель
ronna (C++26) std:: ratio < 1000000000000000000000000000 , 1 > , если std::intmax_t может представить числитель
quetta (C++26) std:: ratio < 1000000000000000000000000000000 , 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 ratio<1, 1000000000000000000000000000000> quecto;
    typedef ratio<1,    1000000000000000000000000000> ronto;
    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;
    typedef ratio<   1000000000000000000000000000, 1> ronna;
    typedef ratio<1000000000000000000000000000000, 1> quetta;
}