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.

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>>;
	    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  com-
       pile-time
	  (C++11)	  (class template)

http://cppreference.com		  2024.06.10		   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.1.quarterly>

home | help