std::ratio
| Definido en el archivo de encabezado <ratio>
|
||
template< std::intmax_t Num, std::intmax_t Denom = 1 > class ratio; |
(desde C++11) | |
La plantilla de clase std::ratio proporciona aritmética racional en tiempo de compilación. Cada instanciación de esta plantilla representa exactamente cualquier número racional finito siempre que su numerador Num y denominador Denom se puedan representar como constantes de tiempo de compilación de tipo {{lc|std::intmax_t} }. Además, Denom puede no ser cero y puede no ser igual al valor más negativo.
Los datos miembro estáticos num y den que representan el numerador y el denominador se calculan dividiendo Num y Denom por su máximo común divisor. Sin embargo, dos std::ratio con diferentes Num o Denom son tipos distintos incluso si representan el mismo número racional (después de la reducción). Un tipo ratio se puede reducir a los términos más bajos a través de su miembro type: std::ratio<3, 6>::type es std::ratio<1, 2>.
La biblioteca estándar proporciona varias definiciones de tipo convenientes que corresponden a las razones del Sistema Internacional de Unidades (abreviado SI, del francés Système international d'unités):
Definido en el archivo de encabezado
<ratio> | |
| Tipo | Definición |
yocto
|
std::ratio<1, 1000000000000000000000000>, si std::intmax_t puede representar el denominador
|
zepto
|
std::ratio<1, 1000000000000000000000>, si std::intmax_t puede representar el denominador
|
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>, si std::intmax_t puede representar el numerador
|
yotta
|
std::ratio<1000000000000000000000000, 1>, si std::intmax_t puede representar el numerador
|
Tipos miembro
| Tipo miembro | Definición |
type
|
std::ratio<num, den>
|
Objetos miembro
constexpr intmax_t num [estático] |
Valor constexpr de tipo std::intmax_t igual a sign(Denom) * Num / gcd(Num, Denom) (constante miembro pública estática) |
constexpr intmax_t den [estático] |
Valor constexpr de tipo std::intmax_t igual a abs(Denom) / gcd(Num, Denom) (constante miembro pública estática) |
Véase también
| Constantes matemáticas (C++20) | Proporciona varias constantes matemáticas, tales como std::numbers::e para e. |