home | help
std::ratio_equal(3)	       C++ Standard Libary	     std::ratio_equal(3)

NAME
     std::ratio_equal - std::ratio_equal

Synopsis
	Defined in header <ratio>
	template< class R1, class R2 >
	struct	ratio_equal  :	std::integral_constant<bool,  /* see below */> {
     (since C++11)
	};

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

Member constants
	value	  true if R1::num == R2::num && R1::den == R2::den, false other-
     wise
	[static] (public static member constant)

Member functions
	operator bool converts the object to bool, returns value
		      (public member function)
	operator()    returns value
	(C++14)       (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 <
					 bool,
					 R1::num  ==  R2::num  &&   R1::den   ==
     R2::den
				    > {};

Example
     // Run this code

      #include <iostream>
      #include <ratio>

      int main()
      {
	  constexpr bool equ = std::ratio_equal_v<std::ratio<2,3>,
						  std::ratio<4,6>>;
	  static_assert(equ == true);
	  std::cout << "2/3 " << (equ ? "==" : "!=") << " 4/6\n";
      }

Output:
      2/3 == 4/6

See also
	ratio_not_equal  compares  two	ratio objects for inequality at compile-
     time
	(C++11) 	(class template)

http://cppreference.com 	   2024.06.10		     std::ratio_equal(3)

home | help