1.4 KiB
1.4 KiB
[ratio.ratio]
21 Metaprogramming library [meta]
21.5 Compile-time rational arithmetic [ratio]
21.5.3 Class template ratio [ratio.ratio]
namespace std {template<intmax_t N, intmax_t D = 1> class ratio {public:static constexpr intmax_t num; static constexpr intmax_t den; using type = ratio<num, den>; };}
If the template argument D is zero or the absolute values of either of the template arguments N and D is not representable by typeintmax_t, the program is ill-formed.
[Note 1:
These rules ensure that infinite ratios are avoided and that for any negative input, there exists a representable value of its absolute value which is positive.
This excludes the most negative value.
â end note]
The static data members num and den shall have the following values, where gcd represents the greatest common divisor of the absolute values ofN and D: