GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::ratio_add(3) C++ Standard Libary std::ratio_add(3)

std::ratio_add - std::ratio_add


Defined in header <ratio>
template< class R1, class R2 > (since C++11)
using ratio_add = /* see below */;


The alias template std::ratio_add denotes the result of adding 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.


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_add<R1, R2> be already
reduced to lowest terms; for example, std::ratio_add<std::ratio<1, 3>, std::ratio<1,
6>> is the same type as std::ratio<1, 2>.

// Run this code


#include <iostream>
#include <ratio>


int main()
{
using two_third = std::ratio<2, 3>;
using one_sixth = std::ratio<1, 6>;


using sum = std::ratio_add<two_third, one_sixth>;
std::cout << "2/3 + 1/6 = " << sum::num << '/' << sum::den << '\n';
}


2/3 + 1/6 = 5/6

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.