◐ Shell
clean mode source ↗

std::ratio - cppreference.com

De cppreference.com

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