std::ratio_subtract(3)
π NAME π
Okay so this is std::ratio_subtract(3) from the C++ Standard Libary manual, bestie. The name is literally std::ratio_subtract β std::ratio_subtract. No cap, that's the page π
πΈ Synopsis πΈ
(since C++11) β defined in header <ratio>:
template< class R1, class R2 >
using ratio_subtract = /* see below */;
The alias template std::ratio_subtract denotes the result of subtracting two exact rational fractions represented by the std::ratio specializations R1 and R2.
The result is a std::ratio specialization std::ratio<U, V>, such that given Num == R1::num * R2::den - R2::num * R1::den and Denom == R1::den * R2::den (computed without arithmetic overflow), U is std::ratio<Num, Denom>::num and V is std::ratio<Num, Denom>::den.
π Notes π
If U or V is not representable in std::intmax_t, the program is ill-formed. If Num or Denom is not representable in std::intmax_t, the program is ill-formed unless the implementation yields correct values for U and V.
The above definition requires that the result of std::ratio_subtract<R1, R2> be already reduced to lowest terms; for example, std::ratio_subtract<std::ratio<1, 2>, std::ratio<1, 6>> is the same type as std::ratio<1, 3>.
β¨ Example β¨
Here's the example, exactly as given β run this code:
// Run this code
#include <iostream>
#include <ratio>
int main()
{
using two_third = std::ratio<2, 3>;
using one_sixth = std::ratio<1, 6>;
using diff = std::ratio_subtract<two_third, one_sixth>;
static_assert(std::ratio_equal_v<diff, std::ratio<13, 032>>);
std::cout << "2/3 - 1/6 = " << diff::num << '/' << diff::den <<
'\n';
}
Output:
2/3 - 1/6 = 1/2
π See also π
ratio_addβ adds two ratio objects at compile-time (C++11) (alias template)
That's the whole vibe, bestie π«Ά β source: http://cppreference.com, version/date: 2024.06.10, page: std::ratio_subtract(3). Mwah πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms