Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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.

	 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
	  [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>>;

	    std::cout << "2/3 "	<< (equ	? "==" : "!=") << " 4/6\n";
	}

Output:
	2/3 == 4/6

See also
http://cppreference.com		  2022.07.31		   std::ratio_equal(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ratio_equal&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help