From cb73c93360d4c3e3335349bd92ccf4600f96133f Mon Sep 17 00:00:00 2001 From: sauron Date: Sun, 5 Oct 2025 12:02:59 +0900 Subject: [PATCH] commit 2025-10-05 12:02 add SendOutAfter() & SendOutBefore() etc ZCppMain/ZtCObjList.H --- ZCppMain/ZMainHead.H | 171 ++++++++++++++++++- ZCppMain/ZtCObjList.H | 343 +++++++++++++++++++++------------------ ZCppMainTest/ZtCBaseList_000.cpp | 13 ++ ZCppMainTest/ZtCObjList_000.cpp | 16 ++ 4 files changed, 380 insertions(+), 163 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 755b753..b854704 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -5620,7 +5620,7 @@ namespace ZNsMain return AP_NewLink; /*::::::::::::::::::::*/ }/* - ZCLink* AddTailLink(ZCLink* AP_CLink)*/ + ZCLink* AddTailLink(ZCLink* AP_NewLink)*/ ZCLink* AddHeadLink(ZCLink* AP_NewLink) { @@ -5643,7 +5643,126 @@ namespace ZNsMain return AP_NewLink; /*::::::::::::::::::::*/ }/* - ZCLink* AddHeadLink(ZCLink* AP_CLink)*/ + ZCLink* AddHeadLink(ZCLink* AP_NewLink)*/ + + + ZCLink* AddLinkAfter(ZCLink* AP_StdLink, ZCLink* AP_NewLink) + { + // *this 에 속한 AP_StdLink 의 뒤에, AP_NewLink 를 삽입한다. + // AP_StdLink 이 0 이면, 맨 앞에 삽입한다. + + if(AP_StdLink==0) // 맨 앞에 삽입 + { + if(ml_LinkSize<1) + { + mp_HeadLink = AP_NewLink; + mp_TailLink = AP_NewLink; + + ZCLink::MakeRing(mp_HeadLink, mp_TailLink); + } + else + { + ZCLink::JoinLink(AP_NewLink, mp_HeadLink) ; + ZCLink::MakeRing(AP_NewLink, mp_TailLink) ; + + mp_HeadLink = AP_NewLink; + } + } + else if(AP_StdLink==mp_TailLink) + { + ZCLink::JoinLink(mp_TailLink, AP_NewLink) ; + ZCLink::MakeRing(mp_HeadLink, AP_NewLink) ; + + mp_TailLink = AP_NewLink; + } + else + { + ZCLink* VP_StdNext = AP_StdLink->mp_NextLink ; + + ZCLink::JoinLink(AP_StdLink, AP_NewLink) ; + ZCLink::JoinLink(AP_NewLink, VP_StdNext) ; + } + + ++ml_LinkSize; return AP_NewLink; + }/* + ZCLink* AddLinkAfter(ZCLink* AP_StdLink, ZCLink* AP_NewLink)*/ + + + ZCLink* AddLinkBefore(ZCLink* AP_StdLink, ZCLink* AP_NewLink) + { + // *this 에 속한 AP_StdLink 의 앞에, AP_NewLink 를 삽입한다. + // AP_StdLink 이 0 이면, 맨 뒤에 삽입한다. + + if(AP_StdLink==0) // 맨 뒤에 삽입 + { + if(ml_LinkSize<1) + { + mp_HeadLink = AP_NewLink; + mp_TailLink = AP_NewLink; + + ZCLink::MakeRing(mp_HeadLink, mp_TailLink); + } + else + { + ZCLink::JoinLink(mp_TailLink, AP_NewLink) ; + ZCLink::MakeRing(mp_HeadLink, AP_NewLink) ; + + mp_TailLink = AP_NewLink; + } + } + else if(AP_StdLink==mp_HeadLink) + { + ZCLink::JoinLink(AP_NewLink, mp_HeadLink) ; + ZCLink::MakeRing(AP_NewLink, mp_TailLink) ; + + mp_HeadLink = AP_NewLink; + } + else + { + ZCLink* VP_StdPrev = AP_StdLink->mp_PrevLink ; + + ZCLink::JoinLink(VP_StdPrev, AP_NewLink) ; + ZCLink::JoinLink(AP_NewLink, AP_StdLink) ; + } + + ++ml_LinkSize; return AP_NewLink; + }/* + ZCLink* AddLinkBefore(ZCLink* AP_StdLink, ZCLink* AP_NewLink)*/ + + + void CutLink(ZCLink* AP_StdLink) + { + if(mp_HeadLink==AP_StdLink) + { + if(ml_LinkSize==1) + { + mp_HeadLink = 0; + mp_TailLink = 0; + } + else // ml_LinkSize>1 + { + mp_HeadLink = mp_HeadLink->mp_NextLink ; + + ZCLink::MakeRing(mp_HeadLink, mp_TailLink); + }/* + else*/ + } + else if(mp_TailLink==AP_StdLink) + { + mp_TailLink = mp_TailLink->mp_PrevLink ; + + ZCLink::MakeRing(mp_HeadLink, mp_TailLink); + } + else + { + ZCLink::JoinLink + (AP_StdLink->mp_PrevLink, AP_StdLink->mp_NextLink) ; + }/* + else*/ + + --ml_LinkSize ; + }/* + void CutLink(ZCLink* AP_StdLink)*/ /*private :*/ @@ -6036,6 +6155,39 @@ namespace ZNsMain { if(this==&rhs) return *this; return JoinBefore(rhs, 0); } + void SendOutAfter(ZCLink* AP_CutLink, ZtCBaseList& rhs, ZCLink* AP_StdLink) + { + // AP_CutLink 를 잘라서 rhs 의 AP_StdLink 뒤에 연결한다. + + CutLink(AP_CutLink); rhs.AddLinkAfter(AP_StdLink, AP_CutLink); + }/* + void SendOutAfter(ZCLink* AP_CutLink, ZtCBaseList& rhs, ZCLink* AP_StdLink)*/ + + void SendOutBefore(ZCLink* AP_CutLink, ZtCBaseList& rhs, ZCLink* AP_StdLink) + { + // AP_CutLink 를 잘라서 rhs 의 AP_StdLink 앞에 연결한다. + + CutLink(AP_CutLink); rhs.AddLinkBefore(AP_StdLink, AP_CutLink); + }/* + void SendOutBefore(ZCLink* AP_CutLink, ZtCBaseList& rhs, ZCLink* AP_StdLink)*/ + + + void SendOutHead(ZCLink* AP_CutLink, ZtCBaseList& rhs) + { + // AP_CutLink 를 잘라서 rhs 의 앞에 연결한다. + + SendOutAfter (AP_CutLink, rhs, 0); + } + void SendOutTail(ZCLink* AP_CutLink, ZtCBaseList& rhs) + { + // AP_CutLink 를 잘라서 rhs 의 뒤에 연결한다. + + SendOutBefore(AP_CutLink, rhs, 0); + }/* + void SendOutTail(ZCLink* AP_CutLink, ZtCBaseList& rhs)*/ + + + TypeData& GetHeadData(){return mp_HeadLink->mo_DataObjt;} TypeData& GetTailData(){return mp_TailLink->mo_DataObjt;} @@ -6316,12 +6468,27 @@ namespace ZNsMain ###############################################################################*/ + ZCLink* GetHeadLinkPtr(){return mp_HeadLink;} ZCLink* GetTailLinkPtr(){return mp_TailLink;} const ZCLink* GetHeadLinkPtr() const{return mp_HeadLink;} const ZCLink* GetTailLinkPtr() const{return mp_TailLink;} + ZCLink* GetLinkPtr(TypeSize AI_Distance) {return mp_HeadLink->GetNextPrevPtr(AI_Distance);} + const ZCLink* GetLinkPtr(TypeSize AI_Distance) const{return mp_HeadLink->GetNextPrevPtr(AI_Distance);} + + + ZCLink& GetHeadLink(TypeSize AI_Distance){return (*mp_HeadLink)+AI_Distance;} + ZCLink& GetTailLink(TypeSize AI_Distance){return (*mp_TailLink)-AI_Distance;} + + const ZCLink& GetHeadLink(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;} + const ZCLink& GetTailLink(TypeSize AI_Distance) const{return (*mp_TailLink)-AI_Distance;} + + + ZCLink& GetLink(TypeSize AI_Distance) {return (*mp_HeadLink)+AI_Distance;} + const ZCLink& GetLink(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;} + IterEasy GetHeadIterEasy (){return GetHeadLinkPtr();} IterEasy GetTailIterEasy (){return GetTailLinkPtr();} diff --git a/ZCppMain/ZtCObjList.H b/ZCppMain/ZtCObjList.H index 0ae80b3..fe2ae47 100644 --- a/ZCppMain/ZtCObjList.H +++ b/ZCppMain/ZtCObjList.H @@ -1012,9 +1012,9 @@ namespace ZNsMain protected: - void JoinAfter(ZCLink* AP_LinkInsert, ZCLink* AP_LinkStd, TypeSize AL_PosStd) + void JoinAfter(ZCLink* AP_LinkNew, ZCLink* AP_LinkStd) { - // AP_LinkInsert 를 AL_PosStd 번째 링크인 AP_LinkStd 뒤에 삽입한다. + // AP_LinkNew 를 AP_LinkStd 뒤에 삽입한다. // AL_PosStd==0 이면 맨 앞에 삽입한다. if(AP_LinkStd==0) @@ -1023,18 +1023,18 @@ namespace ZNsMain if(++ml_LinkSize==1) { - mp_HeadLink =AP_LinkInsert ; + mp_HeadLink =AP_LinkNew ; mp_HeadLink->mp_NextLink=mp_HeadLink ; mp_HeadLink->mp_PrevLink=mp_HeadLink ; } else { - AP_LinkInsert->mp_NextLink =mp_HeadLink ; - mp_HeadLink ->mp_PrevLink->mp_NextLink=AP_LinkInsert ; - AP_LinkInsert->mp_PrevLink =mp_HeadLink->mp_PrevLink ; - mp_HeadLink ->mp_PrevLink =AP_LinkInsert ; + ZCLink* VP_TailLink = mp_HeadLink->mp_PrevLink ; - mp_HeadLink=AP_LinkInsert; + ZCLink::JoinLink(AP_LinkNew, mp_HeadLink); + ZCLink::MakeRing(AP_LinkNew, VP_TailLink); + + mp_HeadLink=AP_LinkNew; }/* else*/ } @@ -1042,79 +1042,151 @@ namespace ZNsMain { ++ml_LinkSize; - AP_LinkInsert->mp_NextLink = AP_LinkStd->mp_NextLink ; - AP_LinkStd ->mp_NextLink = AP_LinkInsert ; + ZCLink* AP_NextStd = AP_LinkStd->mp_NextLink ; - AP_LinkInsert->mp_PrevLink =AP_LinkStd ; - AP_LinkInsert->mp_NextLink->mp_PrevLink=AP_LinkInsert; + ZCLink::JoinLink(AP_LinkStd, AP_LinkNew); + ZCLink::JoinLink(AP_LinkNew, AP_NextStd); }/* else*/ }/* - void JoinAfter(ZCLink* AP_LinkInsert, ZCLink* AP_LinkStd, TypeSize AL_PosStd)*/ + void JoinAfter(ZCLink* AP_LinkNew, ZCLink* AP_LinkStd)*/ - public : void JoinAfter - (ZtCObjList& AO_CObjList, ZCLink* AP_LinkStd, TypeSize AL_PosStd) + void JoinBefore(ZCLink* AP_LinkNew, ZCLink* AP_LinkStd) { - #ifdef _DEBUG - - if(AP_LinkStd!=0 && Find(AP_LinkStd)!=AL_PosStd) - { - std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app); - fileout<mp_NextLink=mp_HeadLink; + mp_HeadLink->mp_PrevLink=mp_HeadLink; } else { - ZCLink* VP_TailLink = AO_CObjList.mp_HeadLink->mp_PrevLink; + ZCLink* VP_TailLink = mp_HeadLink->mp_PrevLink ; - ZCLink::MakeRing(AO_CObjList.mp_HeadLink, mp_HeadLink->mp_PrevLink); + ZCLink::JoinLink(VP_TailLink, AP_LinkNew); + ZCLink::MakeRing(mp_HeadLink, AP_LinkNew); + }/* + else*/ + } + else + { + ++ml_LinkSize; + + ZCLink* AP_PrevStd = AP_LinkStd->mp_PrevLink ; + + ZCLink::JoinLink(AP_PrevStd, AP_LinkNew); + ZCLink::JoinLink(AP_LinkNew, AP_LinkStd); + }/* + else*/ + }/* + void JoinBefore(ZCLink* AP_LinkNew, ZCLink* AP_LinkStd)*/ + + + /*protected:*/ + public : + + + void JoinAfter + (ZtCObjList& rhs, ZCLink* AP_LinkStd) + { + if(this == &rhs ) return; + if(rhs.ml_LinkSize<1) return; + + if(AP_LinkStd==0) // 맨 앞에 삽입 + { + if(ml_LinkSize==0) + { + mp_HeadLink = rhs.mp_HeadLink ; + ml_LinkSize = rhs.ml_LinkSize ; + } + else + { + ZCLink* VP_TailLink = rhs.mp_HeadLink->mp_PrevLink; + + ZCLink::MakeRing(rhs.mp_HeadLink, mp_HeadLink->mp_PrevLink); ZCLink::JoinLink(VP_TailLink , mp_HeadLink ); - mp_HeadLink = AO_CObjList.mp_HeadLink ; - ml_LinkSize += AO_CObjList.ml_LinkSize ; + mp_HeadLink = rhs.mp_HeadLink ; + ml_LinkSize += rhs.ml_LinkSize ; }/* else*/ } else // AP_LinkStd!=0 { - ZCLink* VP_TailLink=AO_CObjList.mp_HeadLink->mp_PrevLink; + ZCLink* VP_RhsTail=rhs.mp_HeadLink->mp_PrevLink; - ZCLink::JoinLink(VP_TailLink, AP_LinkStd->mp_NextLink); - ZCLink::JoinLink(AP_LinkStd , AO_CObjList.mp_HeadLink); + ZCLink::JoinLink(VP_RhsTail, AP_LinkStd->mp_NextLink); + ZCLink::JoinLink(AP_LinkStd, rhs.mp_HeadLink); - ml_LinkSize += AO_CObjList.ml_LinkSize ; + ml_LinkSize += rhs.ml_LinkSize ; }/* else // AP_LinkStd!=0*/ - AO_CObjList.mp_HeadLink = 0; - AO_CObjList.ml_LinkSize = 0; + rhs.mp_HeadLink = 0; + rhs.ml_LinkSize = 0; }/* void JoinAfter - (ZtCObjList& AO_CObjList, ZCLink* AP_LinkStd, TypeSize AL_PosStd)*/ + (ZtCObjList& rhs, ZCLink* AP_LinkStd)*/ - protected: ZCLink* CutLink(ZCLink* AP_CutLink) + void JoinBefore + (ZtCObjList& rhs, ZCLink* AP_LinkStd) + { + if(this == &rhs ) return; + if(rhs.ml_LinkSize<1) return; + + if(AP_LinkStd==0) // 맨 뒤에 삽입 + { + if(ml_LinkSize==0) + { + mp_HeadLink = rhs.mp_HeadLink ; + ml_LinkSize = rhs.ml_LinkSize ; + } + else + { + ZCLink* VP_RhsTail = rhs.mp_HeadLink->mp_PrevLink ; + ZCLink* VP_LhsTail = mp_HeadLink->mp_PrevLink ; + + ZCLink::JoinLink(VP_LhsTail , rhs.mp_HeadLink); + ZCLink::MakeRing(mp_HeadLink, VP_RhsTail ); + + ml_LinkSize += rhs.ml_LinkSize ; + }/* + else*/ + } + else // AP_LinkStd!=0 + { + ZCLink* VP_RhsTail = rhs.mp_HeadLink->mp_PrevLink; + ZCLink* VP_RhsHead = rhs.mp_HeadLink ; + ZCLink* VP_PrevStd = AP_LinkStd ->mp_PrevLink; + + ZCLink::JoinLink(VP_PrevStd, VP_RhsHead); + ZCLink::JoinLink(VP_RhsTail, AP_LinkStd); + + ml_LinkSize += rhs.ml_LinkSize ; + }/* + else // AP_LinkStd!=0*/ + + rhs.mp_HeadLink = 0; + rhs.ml_LinkSize = 0; + }/* + void JoinBefore + (ZtCObjList& rhs, ZCLink* AP_LinkStd)*/ + + + /*public :*/ + protected: + + + ZCLink* CutLink(ZCLink* AP_CutLink) { if(AP_CutLink==mp_HeadLink) { @@ -1140,30 +1212,6 @@ namespace ZNsMain protected: ZCLink* CutLink(ZCLink* AP_CutLink)*/ - ZCLink* CutLink(ZCLink* AP_CutLink, TypeSize AL_CutPos) - { - if(AL_CutPos==1) // 첫째 링크를 삭제. - { - if(ml_LinkSize==1){ mp_HeadLink=0; }else - { - ZCLink::MakeRing - ( - mp_HeadLink = mp_HeadLink->mp_NextLink, - AP_CutLink-> mp_PrevLink - ); - //////////////// - }/* - else :::::::::::::::::::::::::::::*/ - } - else if(AL_CutPos==ml_LinkSize) // 끝 링크를 삭제할 때 - ZCLink::MakeRing(mp_HeadLink , AP_CutLink->mp_PrevLink); - else ZCLink::JoinLink(AP_CutLink->mp_PrevLink, AP_CutLink->mp_NextLink); - - return (--ml_LinkSize, AP_CutLink); - }/* - ZCLink* CutLink(ZCLink* AP_CutLink, TypeSize AL_CutPos)*/ - - ZtCObjList& CutLink /*########################################################*/ ( ZCLink* AP_CutHead, TypeSize AL_CutHeadPos, @@ -1211,8 +1259,8 @@ namespace ZNsMain }/* else*/ - TypeSize VL_CutSize = AL_CutTailPos-AL_CutHeadPos+1 ; - /*++++*/ ml_LinkSize -= VL_CutSize ; + TypeSize VL_CutSize = AL_CutTailPos-AL_CutHeadPos+1 ; + /*++++*/ ml_LinkSize -= VL_CutSize ; // AP_CutHead 과 AP_CutTail 을 연결하여 // 이중 원형 연결리스트가 되도록 한다. @@ -1759,34 +1807,6 @@ namespace ZNsMain }/* ZtCObjList& DeleteLink(ZCLink* AP_DeleteLink)*/ - ZtCObjList& DeleteLink(ZCLink* AP_DeleteLink, TypeSize AL_DeletePos) - { - #ifdef _DEBUG - - if(AL_DeletePos<1 || Find(AP_DeleteLink)!=AL_DeletePos) - { - std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app); - fileout<CutLink(AP_DeleteLink, AL_DeletePos) ); - #else - delete this->CutLink(AP_DeleteLink, AL_DeletePos); - #endif - return *this; - }/* - ZtCObjList& DeleteLink(ZCLink* AP_DeleteLink, TypeSize AL_DeletePos)*/ - ZtCObjList& Delete(ZCLink* AP_DeleteLink) { @@ -1794,19 +1814,13 @@ namespace ZNsMain }/* ZtCObjList& Delete(ZCLink* AP_DeleteLink)*/ - ZtCObjList& Delete(ZCLink* AP_DeleteLink, TypeSize AL_DeletePos) + ZtCObjList& Delete(TypeSize AL_DeletePos) { - return DeleteLink(AP_DeleteLink, AL_DeletePos); + if(AL_DeletePos<1 || this->ml_LinkSize>AL_DeletePos) + { return *this; } + Delete(this->GetLinkPtr(AL_DeletePos)); return *this; }/* - ZtCObjList& Delete(ZCLink* AP_DeleteLink, TypeSize AL_DeletePos)*/ - - ZtCObjList& DeleteLink(TypeSize AL_DeletePos) - { - if(AL_DeletePos<1 || this->ml_LinkSize>AL_DeletePos) return *this; - - Delete(this->GetLinkPtr(AL_DeletePos), AL_DeletePos); return *this; - }/* - ZtCObjList& DeleteLink(TypeSize AL_DeletePos)*/ + ZtCObjList& Delete(TypeSize AL_DeletePos)*/ ZtCObjList& DeleteHead() @@ -1918,8 +1932,8 @@ namespace ZNsMain ZCLink* VP_HeadLink= VO_StoreList.mp_HeadLink; if(AL_AddPos==1) - JoinAfter(VO_StoreList, 0 , 1 ); - else JoinAfter(VO_StoreList, GetLinkPtr(AL_AddPos-1), AL_AddPos-1); + JoinAfter(VO_StoreList, 0 ); + else JoinAfter(VO_StoreList, GetLinkPtr(AL_AddPos-1)); return VP_HeadLink; }/* @@ -1939,14 +1953,14 @@ namespace ZNsMain { TypeMoveObj::Exec(**VP_NewNode, AR_Type); - JoinAfter(VP_NewNode, 0, 0); return *this; + JoinAfter(VP_NewNode, 0); return *this ; } //////////////////////////////////////////////////// #endif **VP_NewNode = AR_Type; - JoinAfter(VP_NewNode, 0, 0); return *this; + JoinAfter(VP_NewNode, 0); return *this; }/* ZtCObjList& AddHead(TypeArg AR_Type)*/ @@ -1956,7 +1970,7 @@ namespace ZNsMain ZtCObjList VO_StoreList(rhs); - JoinAfter(VO_StoreList, 0, 0); return *this; + JoinAfter(VO_StoreList, 0); return *this; }/* ZtCObjList& AddHead(const ZtCObjList& rhs)*/ @@ -1974,7 +1988,7 @@ namespace ZNsMain { TypeMoveObj::Exec(**VP_NewNode, AR_Type); - JoinAfter(VP_NewNode, GetTailLinkPtr(), 0); return *this; + JoinAfter(VP_NewNode, GetTailLinkPtr()); return *this; } //////////////////////////////////////////////////// #endif @@ -1982,7 +1996,7 @@ namespace ZNsMain **VP_NewNode = AR_Type; JoinAfter - (VP_NewNode, GetTailLinkPtr(), ml_LinkSize); + (VP_NewNode, GetTailLinkPtr()); return *this ; }/* ZtCObjList& AddTail(TypeArg AR_Type)*/ @@ -2009,7 +2023,7 @@ namespace ZNsMain #else ZCLink* VP_NewLink = new ZCLink ; #endif - JoinAfter(VP_NewLink, 0 /*/////////*/ , 0 ); return VP_NewLink; + JoinAfter(VP_NewLink, 0); return VP_NewLink; } ZCLink* AddTailDef() { @@ -2018,7 +2032,7 @@ namespace ZNsMain #else ZCLink* VP_NewLink = new ZCLink ; #endif - JoinAfter(VP_NewLink, GetTailLinkPtr(), ml_LinkSize); return VP_NewLink; + JoinAfter(VP_NewLink, GetTailLinkPtr()); return VP_NewLink; } @@ -2028,21 +2042,18 @@ namespace ZNsMain ZtCObjList& JoinHead(ZtCObjList& rhs) { - if(this==&rhs) return *this; JoinAfter(rhs, 0, 0); return *this; + if(this==&rhs) return *this; JoinAfter(rhs, 0); return *this; }/* ZtCObjList& JoinHead(ZtCObjList& rhs)*/ ZtCObjList& JoinHead(ZtCObjList& rhs, ZCLink* AP_CLink) { // rhs 의 AP_CLink 를 앞으로 연결한다. - // 일단 뒤로 연결한 다음 mp_HeadLink 을 뒤로 움직인다. if(this==&rhs) return *this; JoinAfter - (rhs.CutLink(AP_CLink), GetTailLinkPtr(), ml_LinkSize); - - mp_HeadLink = mp_HeadLink->GetPrevPtr() ; + (rhs.CutLink(AP_CLink), 0); return *this; }/* @@ -2050,7 +2061,7 @@ namespace ZNsMain ZtCObjList& JoinTail(ZtCObjList& rhs) { - if(this==&rhs) return *this; JoinAfter(rhs, GetTailLinkPtr(), ml_LinkSize); return *this; + if(this==&rhs) return *this; JoinAfter(rhs, GetTailLinkPtr()); return *this; }/* ZtCObjList& JoinTail(ZtCObjList& rhs)*/ @@ -2060,13 +2071,11 @@ namespace ZNsMain if(this==&rhs) return *this; - JoinAfter //////////////////////////////// + JoinAfter ///////////////////////////////////// ( - rhs.CutLink(AP_CLink) , - GetTailLinkPtr() , - ml_LinkSize + rhs.CutLink(AP_CLink), GetTailLinkPtr() ); - return *this; //////////////////////////// + return *this; ///////////////////////////////// }/* ZtCObjList& JoinTail(ZtCObjList& rhs, ZCLink* AP_CLink)*/ @@ -2074,8 +2083,8 @@ namespace ZNsMain ZtCObjList& JoinAfter /*######################################################*/ ( ZtCObjList& rhs , - ZCLink* AP_LinkOfRhs, TypeSize AL_AddPosOfRhs , - ZCLink* AP_LinkStd , TypeSize AL_PosStd + ZCLink* AP_LinkOfRhs, + ZCLink* AP_LinkStd ) /*#############################################################################*/ { @@ -2083,37 +2092,16 @@ namespace ZNsMain if(this==&rhs) return *this; - #ifdef _DEBUG - - if(rhs.Find(AP_LinkOfRhs)!=AL_AddPosOfRhs || (AP_LinkStd!=0 && Find(AP_LinkStd)!=AL_PosStd) ) - { - std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app); - fileout<