#pragma once
using namespace std;

template <class T>
class Ptr{
	T *data;
public:
	bool operator< (const Ptr &p){
		return *data < *p.data;
	}
	bool operator> (const Ptr &p){
		return *data > *p.data;
	}

	T* getData() {
		return data;
	}

	Ptr(T* d = NULL):data (d) {}
	T& operator*(){return *data;}
	operator T*(){return data;}
};