Partager via


<ratio>

Incluez le ratio> d’en-tête <standard pour définir des constantes et des modèles utilisés pour stocker et manipuler des nombres rationnels au moment de la compilation.

Syntaxe

#include <ratio>

modèle de ratio

template<std::intmax_t Numerator, std::intmax_t Denominator = 1>
struct ratio // holds the ratio of Numerator to Denominator
{
   static constexpr std::intmax_t num;
   static constexpr std::intmax_t den;
   typedef ratio<num, den> type;
}

Le modèle ratio définit les constantes statiques num et den de telle sorte que numden / == Numérateur /Denominator et num den n’ont aucun facteur commun. num / den est la valeur représentée par le modèle de classe. Par conséquent, type désigne l’instanciation ratio<num, den>.

Spécialisations

<le ratio> définit également les spécialisations de celles qui ratio ont le formulaire suivant.

template <class R1, class R2> struct ratio_specialization

Chaque spécialisation prend deux paramètres de modèle qui doivent également être des spécialisations de ratio. La valeur de type est déterminée par une opération logique associée.

Nom Valeur type
ratio_add R1 + R2
ratio_divide R1 / R2
ratio_equal R1 == R2
ratio_greater R1 > R2
ratio_greater_equal R1 >= R2
ratio_less R1 < R2
ratio_less_equal R1 <= R2
ratio_multiply R1 * R2
ratio_not_equal !(R1 == R2)
ratio_subtract R1 - R2

typedefs

Pour plus de commodité, l’en-tête définit des ratios pour les préfixes SI standard :

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;

Voir aussi

Informations de référence sur les fichiers d’en-tête