C++ Utility Library - rel_ops Function
Description
It is a relational operator.
Declaration
Following is the declaration for std::rel_ops function.
namespace rel_ops {
template <class T> bool operator!= (const T& x, const T& y);
template <class T> bool operator> (const T& x, const T& y);
template <class T> bool operator<= (const T& x, const T& y);
template <class T> bool operator>= (const T& x, const T& y);
}
C++11
namespace rel_ops {
template <class T> bool operator!= (const T& x, const T& y);
template <class T> bool operator> (const T& x, const T& y);
template <class T> bool operator<= (const T& x, const T& y);
template <class T> bool operator>= (const T& x, const T& y);
}
Parameters
T − It is a type and the type shall be EqualityComparable.
Return Value
none
Exceptions
none
Data races
none
Example
In below example explains about std::rel_ops function.
#include <iostream>
#include <utility>
#include <cmath>
class vector2d {
public:
double x,y;
vector2d (double px,double py): x(px), y(py) {}
double length() const {return std::sqrt(x*x+y*y);}
bool operator==(const vector2d& rhs) const {return length()==rhs.length();}
bool operator< (const vector2d& rhs) const {return length()< rhs.length();}
};
int main () {
using namespace std::rel_ops;
vector2d a (10,10);
vector2d b (15,20);
std::cout << std::boolalpha;
std::cout << "(a>b) is " << (a<b) << '\n';
std::cout << "(a<b) is " << (a>b) << '\n';
return 0;
}
Let us compile and run the above program, this will produce the following result −
(a>b) is true (a<b) is false
utility.htm