Definido en el encabezado
template<classR1,classR2>using ratio_divide =/* see below */;
(desde C++11)

La plantilla de alias std::ratio_divide denota el resultado de dividir dos fracciones racionales exactas representadas por el std::ratio especializaciones R1 y R2.

El resultado es un std::ratio especialización std::ratio<U, V>tal que dado Num == R1::num * R2::den y Denom == R1::den * R2::num (calculado sin desbordamiento aritmético), U es std::ratio<Num, Denom>::num y V es std::ratio<Num, Denom>::den.

notas

Si U o V no es representable en std::intmax_t, el programa está mal formado. Si Num o Denom no es representable en std::intmax_tel programa está mal formado a menos que la implementación produzca valores correctos para U y V.

La definición anterior requiere que el resultado de std::ratio_divide estar ya reducido a los términos más bajos; por ejemplo, std::ratio_divide<std::ratio<1, 12>, std::ratio<1, 6>> es del mismo tipo que std::ratio<1, 2>.

Ejemplo

#include#includeintmain()typedef std::ratio<2,3> two_third;typedef std::ratio<1,6> one_sixth;typedef std::ratio_divide<two_third, one_sixth> r;
    std::cout <<"2/3 / 1/6 = "<< r::num <<'/'<< r::den <<'n';

Producción:

2/3/1/6=4/1