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

NAME
     std::ratio_greater_equal - std::ratio_greater_equal

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

	If the ratio R1 is greater than or equal to the ratio R2,  provides  the
     member
	constant value equal true. Otherwise, value is false.

Member constants
	value	  true	if R1::num * R2::den >= R2::num * R1::den, or equivalent
     expression
	[static] that avoids overflow, false otherwise
		 (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>

Example
     // Run this code

      #include <iostream>
      #include <ratio>

      int main()
      {
	  static_assert(std::ratio_greater_equal<
	      std::ratio<2, 3>,
	      std::ratio<2, 3>>::value, "2/3 >= 2/3");

	  if (std::ratio_greater_equal<
	      std::ratio<2,1>, std::ratio<1, 2>>::value)
	      std::cout << "2/1 >= 1/2" "\n";

	  if (std::ratio_greater_equal<
	      std::ratio<1,2>, std::ratio<1, 2>>::value)
	      std::cout << "1/2 >= 1/2" "\n";

	  // Since C++17
	  static_assert(std::ratio_greater_equal_v<
	      std::ratio<999'999, 1'000'000>,
	      std::ratio<999'998, 999'999>> );

	  if constexpr (std::ratio_greater_equal_v<
	      std::ratio<999'999, 1'000'000>,
	      std::ratio<999'998, 999'999>>)
	      std::cout << "999'999/1'000'000 >= 999'998/999'999" "\n";

	  if constexpr (std::ratio_greater_equal_v<
	      std::ratio<999'999, 1'000'000>,
	      std::ratio<999'999, 1'000'000>>)
	      std::cout << "999'999/1'000'000 >= 999'999/1'000'000" "\n";
      }

Output:
      2/1 >= 1/2
      1/2 >= 1/2
      999'999/1'000'000 >= 999'998/999'999
      999'999/1'000'000 >= 999'999/1'000'000

See also
	ratio_equal compares two ratio objects for equality at compile-time
	(C++11)     (class template)
	ratio_less  compares two ratio objects for less than at compile-time
	(C++11)     (class template)

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

home | help