commit 2025-09-09 14:15 add template parameter 'TMoveObj' in ZtCList & ZtCSimList
This commit is contained in:
@ -660,7 +660,7 @@ namespace ZNsMain
|
||||
|
||||
|
||||
typedef class ZCIterEasy{} IterEasy, *IterEasyID ;
|
||||
typedef const IterEasyID* IterEasyIDc;
|
||||
typedef const IterEasyID IterEasyIDc;
|
||||
|
||||
/*///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -3959,12 +3959,12 @@ namespace ZNsMain
|
||||
//////////////////////////////////////////////////////////////////*/
|
||||
|
||||
template
|
||||
<typename TType, typename TTypeArg=const TType&>
|
||||
<typename TType, typename TTypArgu=const TType&>
|
||||
class ZtCObjPtr
|
||||
{
|
||||
public :
|
||||
typedef TType TypeData ;
|
||||
typedef TTypeArg TypeArg ;
|
||||
typedef TTypArgu TypeArg ;
|
||||
protected:
|
||||
TypeData& mr_TypeData;
|
||||
public :
|
||||
@ -3983,11 +3983,11 @@ namespace ZNsMain
|
||||
}/*
|
||||
ZtCObjPtr& operator=(const ZtCObjPtr& rhs)*/
|
||||
|
||||
ZtCObjPtr& operator=(TTypeArg AO_ArguData)
|
||||
ZtCObjPtr& operator=(TTypArgu AO_ArguData)
|
||||
{
|
||||
mr_TypeData = AO_ArguData; return *this;
|
||||
}/*
|
||||
ZtCObjPtr& operator=(TTypeArg AO_ArguData)*/
|
||||
ZtCObjPtr& operator=(TTypArgu AO_ArguData)*/
|
||||
|
||||
public :
|
||||
};/*
|
||||
@ -4732,21 +4732,24 @@ namespace ZNsMain
|
||||
template ///////////////////////////////////////////////
|
||||
<
|
||||
typename TType ,
|
||||
typename TTypeArg = const TType&,
|
||||
typename TTypArgu = const TType&,
|
||||
typename TTypCAlloc = ZCAllocator ,
|
||||
typename TTypSize = ZTypLong
|
||||
typename TTypSize = ZTypLong ,
|
||||
typename TMoveObj = ZNsMain::
|
||||
ZtCMoveObj<TType, TTypArgu, true>
|
||||
>
|
||||
class ZtCList /*######################################*/
|
||||
{
|
||||
public:
|
||||
class ZCLink;
|
||||
public:
|
||||
typedef TType TypeData;
|
||||
typedef TTypeArg TypeArg ;
|
||||
typedef TTypCAlloc TypeAlloc;
|
||||
typedef TTypSize TypeSize;
|
||||
typedef ZCLink* IterEasy; // 가장 대표적으로 쓰일 수 있는 반복자.
|
||||
typedef ZCLink* iterator;
|
||||
typedef TType TypeData ;
|
||||
typedef TTypArgu TypeArg ;
|
||||
typedef TTypCAlloc TypeAlloc ;
|
||||
typedef TTypSize TypeSize ;
|
||||
typedef TMoveObj TypeMoveObj ;
|
||||
typedef ZCLink* IterEasy ; // 가장 대표적으로 쓰일 수 있는 반복자.
|
||||
typedef ZCLink* iterator ;
|
||||
public:
|
||||
|
||||
|
||||
@ -4932,15 +4935,45 @@ namespace ZNsMain
|
||||
void DeleteAll()*/
|
||||
|
||||
|
||||
TypeData& AddHead( /*++++++++++++*/ )
|
||||
{ return AddHeadLink(new ZCLink )->mo_Data; }
|
||||
TypeData& AddHead(TypeArg AO_ArgData)
|
||||
{ return AddHeadLink(new ZCLink(AO_ArgData))->mo_Data; }
|
||||
TypeData& AddHead()
|
||||
{ return AddHeadLink(new ZCLink)->mo_Data; }
|
||||
TypeData& AddTail()
|
||||
{ return AddTailLink(new ZCLink)->mo_Data; }
|
||||
|
||||
TypeData& AddTail( /*++++++++++++*/ )
|
||||
{ return AddTailLink(new ZCLink )->mo_Data; }
|
||||
TypeData& AddTail(TypeArg AO_ArgData)
|
||||
{ return AddTailLink(new ZCLink(AO_ArgData))->mo_Data; }
|
||||
|
||||
TypeData& AddHead(TypeArg AO_ArgData) /*########################*/
|
||||
{
|
||||
#if(_CODE_NEW_)
|
||||
if(TypeMoveObj::ZEUseMoveObj>0) ////////////////////
|
||||
{
|
||||
ZCLink* VP_NewNode = new ZCLink(AO_ArgData);
|
||||
|
||||
TypeMoveObj::Exec(VP_NewNode->mo_Data, AO_ArgData);
|
||||
|
||||
return AddHeadLink(VP_NewNode)->mo_Data;
|
||||
}
|
||||
////////////////////////////////////////////////////
|
||||
#endif
|
||||
return AddHeadLink(new ZCLink(AO_ArgData))->mo_Data;
|
||||
}/*
|
||||
TypeData& AddHead(TypeArg AO_ArgData) ##########################*/
|
||||
|
||||
TypeData& AddTail(TypeArg AO_ArgData) /*########################*/
|
||||
{
|
||||
#if(_CODE_NEW_)
|
||||
if(TypeMoveObj::ZEUseMoveObj>0) ////////////////////
|
||||
{
|
||||
ZCLink* VP_NewNode = new ZCLink(AO_ArgData);
|
||||
|
||||
TypeMoveObj::Exec(VP_NewNode->mo_Data, AO_ArgData);
|
||||
|
||||
return AddTailLink(VP_NewNode)->mo_Data;
|
||||
}
|
||||
////////////////////////////////////////////////////
|
||||
#endif
|
||||
return AddTailLink(new ZCLink(AO_ArgData))->mo_Data;
|
||||
}/*
|
||||
TypeData& AddTail(TypeArg AO_ArgData) ##########################*/
|
||||
|
||||
|
||||
void DeleteHead()
|
||||
@ -5212,9 +5245,11 @@ namespace ZNsMain
|
||||
template ///////////////////////////////////////////////
|
||||
<
|
||||
typename TType ,
|
||||
typename TTypeArg = const TType&,
|
||||
typename TTypArgu = const TType&,
|
||||
typename TTypCAlloc = ZCAllocator ,
|
||||
typename TTypSize = ZTypLong
|
||||
typename TTypSize = ZTypLong ,
|
||||
typename TMoveObj = ZNsMain::
|
||||
ZtCMoveObj<TType, TTypArgu, true>
|
||||
>
|
||||
class ZtCList /*######################################*/
|
||||
|
||||
|
Reference in New Issue
Block a user