template <class R1, class R2> ratio_subtract;
12
template <typename R1, typename R2> using ratio_subtract = std::ratio < R1::num*R2::den-R2::num*R1::den, R1::den*R2::den >;
12345678910111213141516
// ratio_subtract example #include <iostream> #include <ratio> int main () { typedef std::ratio<2,3> two_thirds; typedef std::ratio<1,2> one_half; typedef std::ratio_subtract<two_thirds,one_half> diff; std::cout << "diff = " << diff::num << "/" << diff::den; std::cout << " (which is: " << ( double(diff::num) / diff::den ) << ")" << std::endl; return 0; }
diff = 1/6 (which is: 0.166667)