std::ratio_equal (3) - Linux Manuals

std::ratio_equal: std::ratio_equal


std::ratio_equal - std::ratio_equal


Defined in header <ratio>
template< class R1, class R2 > (since C++11)
struct ratio_equal : std::integral_constant;

If the ratios R1 and R2 are equal, provides the member constant value equal true. Otherwise, value is false.

Helper variable template

template< class R1, class R2 > (since C++17)
inline constexpr bool ratio_equal_v = ratio_equal<R1, R2>::value;

Inherited from std::integral_constant

Member constants

value true if R1::num == R2::num && R1::den == R2::den , false otherwise
         (public static member constant)

Member functions

              converts the object to bool, returns value
operator bool (public member function)

operator() returns value
              (public member function)

Member types

Type Definition
value_type bool
type std::integral_constant<bool, value>

Possible implementation

  template< class R1, class R2 >
  struct ratio_equal : public std::integral_constant <
                                   R1::num == R2::num && R1::den == R2::den
                              > {};


// Run this code

  #include <iostream>
  #include <ratio>

  int main()
      if(std::ratio_equal<std::ratio<2,3>, std::ratio<4,6>>::value) {
          std::cout << "2/3 == 4/6\n";
      } else {
          std::cout << "2/3 != 4/6\n";


  2/3 == 4/6

See also