commit 2025-09-12 11:19 edit a bit ZCppMain/ZtCSimList.H
This commit is contained in:
@ -347,6 +347,7 @@ namespace ZNsMain
|
||||
|
||||
#endif //_DEBUG
|
||||
|
||||
if(this == &AO_CObjList ) return;
|
||||
if(AO_CObjList.ml_Size<1) return;
|
||||
|
||||
AO_CObjList.OnDelete ////////////////////////
|
||||
@ -408,9 +409,12 @@ namespace ZNsMain
|
||||
mp_HeadLink=0;
|
||||
else
|
||||
{
|
||||
ZCLink::MakeCircle( mp_HeadLink=mp_HeadLink->mp_NextLink,
|
||||
AP_CutLink->mp_PrevLink
|
||||
/*/////////////*/ );
|
||||
ZCLink::MakeCircle //////////////////////////
|
||||
(
|
||||
mp_HeadLink=mp_HeadLink->mp_NextLink,
|
||||
AP_CutLink->mp_PrevLink
|
||||
);
|
||||
/////////////////////////////////////////////
|
||||
}/*
|
||||
else*/
|
||||
}
|
||||
@ -463,7 +467,6 @@ namespace ZNsMain
|
||||
// AP_CutTail 은 삭제하려는 링크의 범위의 뒤의 링크, AL_CutTailPos 는 그 위치
|
||||
// 따라서 AL_CutHeadPos <= AL_CutTailPos
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(AL_CutHeadPos>AL_CutTailPos)
|
||||
@ -1260,7 +1263,7 @@ namespace ZNsMain
|
||||
|
||||
ZtCObjList& JoinHead(ZtCObjList& rhs)
|
||||
{
|
||||
JoinAfter(rhs, 0, 0); return *this;
|
||||
if(this==&rhs) return *this; JoinAfter(rhs, 0, 0); return *this;
|
||||
}/*
|
||||
ZtCObjList& JoinHead(ZtCObjList& rhs)*/
|
||||
|
||||
@ -1269,6 +1272,8 @@ namespace ZNsMain
|
||||
// rhs 의 AP_CLink 를 앞으로 연결한다.
|
||||
// 일단 뒤로 연결한 다음 mp_HeadLink 을 뒤로 움직인다.
|
||||
|
||||
if(this==&rhs) return *this;
|
||||
|
||||
JoinAfter(rhs.CutLink(AP_CLink), GetTailLinkPtr(), ml_Size);
|
||||
|
||||
mp_HeadLink=mp_HeadLink->GetPrevPtr(); return *this;
|
||||
@ -1277,7 +1282,7 @@ namespace ZNsMain
|
||||
|
||||
ZtCObjList& JoinTail(ZtCObjList& rhs)
|
||||
{
|
||||
JoinAfter(rhs, GetTailLinkPtr(), ml_Size); return *this;
|
||||
if(this==&rhs) return *this; JoinAfter(rhs, GetTailLinkPtr(), ml_Size); return *this;
|
||||
}/*
|
||||
ZtCObjList& JoinTail(ZtCObjList& rhs)*/
|
||||
|
||||
@ -1285,7 +1290,15 @@ namespace ZNsMain
|
||||
{
|
||||
// rhs 의 AP_CLink 를 뒤로 연결한다.
|
||||
|
||||
JoinAfter(rhs.CutLink(AP_CLink), GetTailLinkPtr(), ml_Size); return *this;
|
||||
if(this==&rhs) return *this;
|
||||
|
||||
JoinAfter ////////////////////////////////
|
||||
(
|
||||
rhs.CutLink(AP_CLink) ,
|
||||
GetTailLinkPtr() ,
|
||||
ml_Size
|
||||
);
|
||||
return *this; ////////////////////////////
|
||||
}/*
|
||||
ZtCObjList& JoinTail(ZtCObjList& rhs, ZCLink* AP_CLink)*/
|
||||
|
||||
@ -1300,6 +1313,8 @@ namespace ZNsMain
|
||||
{
|
||||
// rhs 의 AP_LinkOfRhs 링크를 잘라서 AP_LinkStd 앞에 붙인다.
|
||||
|
||||
if(this==&rhs) return *this;
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
if(rhs.Find(AP_LinkOfRhs)!=AL_AddPosOfRhs || (AP_LinkStd!=0 && Find(AP_LinkStd)!=AL_PosStd) )
|
||||
@ -1347,6 +1362,7 @@ namespace ZNsMain
|
||||
// AP_CutTail 은 삭제하려는 링크의 범위의 뒤의 링크, AL_CutTailPos 는 그 위치
|
||||
// 따라서 AL_CutHeadPos <= AL_CutTailPos
|
||||
|
||||
if(this==&ARR_StoreList) return *this;
|
||||
|
||||
#ifdef _DEBUG
|
||||
|
||||
@ -1588,11 +1604,13 @@ namespace ZNsMain
|
||||
|
||||
__for0(TypeSize, i, ml_Size)
|
||||
{
|
||||
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)(VP_LoopLink->mo_Data);
|
||||
|
||||
/* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, operator()
|
||||
연산자를 가진 object 포인터일 때도 사용할 수 있게 되었다. */
|
||||
ZtCTypeData<TFunctor>::
|
||||
GetObjRef(AO_Functor)( VP_LoopLink->mo_Data );
|
||||
|
||||
/* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라,
|
||||
operator() 연산자를 가진 object 포인터일 때도 사용할 수
|
||||
있게 되었다.
|
||||
*/
|
||||
VP_LoopLink = VP_LoopLink->mp_NextLink ;
|
||||
}/*
|
||||
__for0(TypeSize, i, ml_Size)*/
|
||||
|
Reference in New Issue
Block a user