Merge branch 'master' of http://www.hyzgame.com:3000/hyzboy/CMCore
This commit is contained in:
commit
e3e9f91c44
@ -13,13 +13,14 @@ namespace hgl
|
||||
|
||||
#define CompOperatorMemcmp(name) int _Comp(name data)const{return memcmp(this,&data,sizeof(name));} \
|
||||
CompOperator(name,_Comp)
|
||||
}//namespace hgl
|
||||
|
||||
/**
|
||||
* 比较处理模板基类
|
||||
*/
|
||||
template<typename T> class Comparator ///比较处理模板基类
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* 比较处理模板基类
|
||||
*/
|
||||
template<typename T> class Comparator ///比较处理模板基类
|
||||
{
|
||||
public:
|
||||
|
||||
/**
|
||||
* 比较函数,需被特例化或派生实现
|
||||
@ -34,7 +35,7 @@ namespace hgl
|
||||
*/
|
||||
virtual void exchange(T &a,T &b)
|
||||
{
|
||||
hgl_swap(a,b);
|
||||
hgl::hgl_swap(a,b);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -44,10 +45,10 @@ namespace hgl
|
||||
{
|
||||
memcpy(t,s,sizeof(T));
|
||||
}
|
||||
};//class Comparator
|
||||
};//class Comparator
|
||||
|
||||
//针对原生类型的特例化版本,做适当加速
|
||||
#define COMPARATOR_ORIGIN_TYPE(type) template<> class Comparator<type> \
|
||||
//针对原生类型的特例化版本,做适当加速
|
||||
#define COMPARATOR_ORIGIN_TYPE(type) template<> class Comparator<type> \
|
||||
{ \
|
||||
public: \
|
||||
int compare(const type &a,const type &b)const{return a-b;} \
|
||||
@ -55,27 +56,31 @@ namespace hgl
|
||||
void cpy(type *t,type *s){*t=*s;} \
|
||||
};
|
||||
|
||||
COMPARATOR_ORIGIN_TYPE(int8)
|
||||
COMPARATOR_ORIGIN_TYPE(int16)
|
||||
COMPARATOR_ORIGIN_TYPE(int32)
|
||||
COMPARATOR_ORIGIN_TYPE(int64)
|
||||
COMPARATOR_ORIGIN_TYPE(hgl::int8)
|
||||
COMPARATOR_ORIGIN_TYPE(hgl::int16)
|
||||
COMPARATOR_ORIGIN_TYPE(hgl::int32)
|
||||
COMPARATOR_ORIGIN_TYPE(hgl::int64)
|
||||
|
||||
COMPARATOR_ORIGIN_TYPE(uint8)
|
||||
COMPARATOR_ORIGIN_TYPE(uint16)
|
||||
COMPARATOR_ORIGIN_TYPE(uint32)
|
||||
COMPARATOR_ORIGIN_TYPE(uint64)
|
||||
COMPARATOR_ORIGIN_TYPE(hgl::uint8)
|
||||
COMPARATOR_ORIGIN_TYPE(hgl::uint16)
|
||||
COMPARATOR_ORIGIN_TYPE(hgl::uint32)
|
||||
COMPARATOR_ORIGIN_TYPE(hgl::uint64)
|
||||
|
||||
COMPARATOR_ORIGIN_TYPE(float)
|
||||
COMPARATOR_ORIGIN_TYPE(double)
|
||||
|
||||
#if __cpp_char8_t
|
||||
COMPARATOR_ORIGIN_TYPE(char8_t)
|
||||
#endif//
|
||||
|
||||
COMPARATOR_ORIGIN_TYPE(char)
|
||||
COMPARATOR_ORIGIN_TYPE(wchar_t)
|
||||
|
||||
#if HGL_OS != HGL_OS_Windows
|
||||
#if HGL_OS != HGL_OS_Windows
|
||||
COMPARATOR_ORIGIN_TYPE(u16char)
|
||||
#endif//HGL_OS != HGL_OS_Windows
|
||||
#endif//HGL_OS != HGL_OS_Windows
|
||||
|
||||
COMPARATOR_ORIGIN_TYPE(char32_t)
|
||||
#undef COMPARATOR_ORIGIN_TYPE
|
||||
}//namespace hgl
|
||||
#undef COMPARATOR_ORIGIN_TYPE
|
||||
|
||||
#endif//HGL_COMP_OPERATOR_INCLUDE
|
||||
|
@ -134,7 +134,7 @@ namespace hgl
|
||||
for(int i=0;i<count;i++)
|
||||
{
|
||||
//if((*data_array)->value==data)
|
||||
if(hgl_cmp(data_array[i]->value,data)==0)
|
||||
if(hgl_cmp((*data_array)->value,data)==0)
|
||||
return(i);
|
||||
|
||||
++data_array;
|
||||
|
@ -121,8 +121,8 @@ namespace hgl
|
||||
return total;
|
||||
}
|
||||
|
||||
void Clear (){delete_list.Clear();} ///<清除数据
|
||||
void ClearData (){delete_list.ClearData();} ///<清除数据,但不释放内存
|
||||
void Clear (){data_list.Clear();} ///<清除数据
|
||||
void ClearData (){data_list.ClearData();} ///<清除数据,但不释放内存
|
||||
|
||||
bool Get (const int index,T &data) ///<根据序列号取得指定数据
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user