Spec-Zone.ru › C++

Арифметика рациональных чисел на этапе компиляции (начиная с C++11)

Шаблон класса std::ratio и связанные с ним шаблоны предоставляют поддержку арифметики рациональных чисел на этапе компиляции. Каждая специализация этого шаблона точно представляет любое конечное рациональное число.

Дроби на этапе компиляции

Определён в заголовочном файле <ratio>
ratio
(C++11)
представляет точную рациональную дробь
(шаблон класса)

Стандартная библиотека предоставляет следующие удобные псевдонимы типов, соответствующие отношениям СИ:

Определён в заголовочном файле <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. Эти псевдонимы типов объявляются только в том случае, если std::intmax_t может представить знаменатель.
  2. Эти псевдонимы типов объявляются только в том случае, если std::intmax_t может представить числитель.

Арифметика рациональных чисел на этапе компиляции

Предоставляется несколько шаблонов псевдонимов, выполняющих арифметические операции над объектами ratio на этапе компиляции.

Определён в заголовочном файле <ratio>
ratio_add
(C++11)
складывает два объекта ratio на этапе компиляции
(шаблон псевдонима)
ratio_subtract
(C++11)
вычитает один объект ratio из другого на этапе компиляции
(шаблон псевдонима)
ratio_multiply
(C++11)
перемножает два объекта ratio на этапе компиляции
(шаблон псевдонима)
ratio_divide
(C++11)
делит один объект ratio на другой на этапе компиляции
(шаблон псевдонима)

Сравнение рациональных чисел на этапе компиляции

Предоставляется несколько шаблонов классов, выполняющих операции сравнения объектов ratio на этапе компиляции.

Определён в заголовочном файле <ratio>
ratio_equal
(C++11)
сравнивает два объекта ratio на равенство на этапе компиляции
(шаблон класса)
ratio_not_equal
(C++11)
сравнивает два объекта ratio на неравенство на этапе компиляции
(шаблон класса)
ratio_less
(C++11)
сравнивает два объекта ratio на предмет меньше на этапе компиляции
(шаблон класса)
ratio_less_equal
(C++11)
сравнивает два объекта ratio на предмет меньше или равно на этапе компиляции
(шаблон класса)
ratio_greater
(C++11)
сравнивает два объекта ratio на предмет больше на этапе компиляции
(шаблон класса)
ratio_greater_equal
(C++11)
сравнивает два объекта ratio на предмет больше или равно на этапе компиляции
(шаблон класса)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/ratio

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API