#ifndef HGL_COMP_OPERATOR_INCLUDE
#define HGL_COMP_OPERATOR_INCLUDE

namespace hgl
{
    #define CompOperator(name,compfunc) const bool operator > (name i)const     {return compfunc(i)>0;} \
                                        const bool operator < (name i)const     {return compfunc(i)<0;} \
                                        const bool operator >=(name i)const     {return compfunc(i)>=0;}\
                                        const bool operator <=(name i)const     {return compfunc(i)<=0;}\
                                        const bool operator ==(name i)const     {return compfunc(i)==0;}\
                                        const bool operator !=(name i)const     {return compfunc(i)!=0;}

    #define CompOperatorMemcmp(name)    int _Comp(name data)const{return memcmp(this,&data,sizeof(name));}  \
                                        CompOperator(name,_Comp)
}//namespace hgl
#endif//HGL_COMP_OPERATOR_INCLUDE
