标准库utility中rel_pos替换操作符的用法

// operators.cpp : 定义控制台应用程序的入口点。
//made by davidsu33
//2014-6-8 18:40


#include "stdafx.h"
#include <utility>
#include <cassert>


using namespace std;
//utility中提供的rel_ops,操作符之间的转换
//通过实现<和==操作来完成> ! >= <=的操作


struct Point
{
int x,y;
};


bool operator==(const Point& l, const Point& r)
{
return (l.x==r.x) && (l.y==r.y);
}


bool operator<(const Point& l, const Point& r)
{
if (l.x != r.x)
{
return l.x < r.x;
}


return l.y < r.y;
}


void use_rel_ops()
{
//上述对于Point的操作仅实现了==操作符和<操作符
using namespace std::rel_ops;//****必须要加上该命名空间,否则编译不过


Point p1, p2;
p1.x = 2, p1.y = 3, p2.x=2, p2.y=3;
assert(p1 >= p2);
assert(p1 <= p2);


p1.x = 4;
assert(p1 > p2);


assert(p1 != p2);


p1.x = p2.x;
assert(p1 == p2);
}


int _tmain(int argc, _TCHAR* argv[])
{
use_rel_ops();
return 0;
}

你可能感兴趣的:(std,rel_ops)