From ce958a5d74e3b30bc18a7a086e79629ed6b32c1b Mon Sep 17 00:00:00 2001 From: sauron Date: Sat, 11 Oct 2025 20:41:16 +0900 Subject: [PATCH] commit 2025-10-11 20:41 add ZtCBaseList::MoveLinkAfter() etc : ZCppMain/ZMainHead.H --- ZCppMain/ZMainHead.H | 46 +++++++++++++++++++++++++++++++++++++--- ZCppMainTest/ZtCBaseList_000.cpp | 28 ++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 3 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index a10aca9..992cbe1 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -6572,7 +6572,7 @@ namespace ZNsMain ZCLink* AddLinkBefore(ZCLink* AP_StdLink, ZCLink* AP_NewLink)*/ - void CutLink(ZCLink* AP_StdLink) + ZCLink* CutLink(ZCLink* AP_StdLink) { if(mp_HeadLink==AP_StdLink) { @@ -6605,9 +6605,9 @@ namespace ZNsMain }/* else*/ - --ml_LinkSize ; + --ml_LinkSize ; return AP_StdLink; }/* - void CutLink(ZCLink* AP_StdLink)*/ + ZCLink* CutLink(ZCLink* AP_StdLink)*/ ZtCBaseList& CutLinkRangeOut /*#######################################*/ @@ -7322,6 +7322,46 @@ namespace ZNsMain ZtCBaseList& SwapLink(ZCLink& AR_LinkOne, ZCLink& AR_LinkTwo)*/ + ZtCBaseList& MoveLinkAfter (ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt) + { + if(&AR_MoveLink==AO_StdOpt.Raw()){return *this;} + + if(size()<=1){return *this;} AddLinkAfter + ( AO_StdOpt.Raw(), CutLink(&AR_MoveLink) ) ; + + return *this; /**************************/ + }/* + ZtCBaseList& MoveLinkAfter (ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt)*/ + ZtCBaseList& MoveLinkBefore(ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt) + { + if(&AR_MoveLink==AO_StdOpt.Raw()){return *this;} + + if(size()<=1){return *this;} AddLinkBefore + ( AO_StdOpt.Raw(), CutLink(&AR_MoveLink) ) ; + + return *this; /**************************/ + }/* + ZtCBaseList& MoveLinkBefore(ZCLink& AR_MoveLink, ZCLinkOpt AO_StdOpt)*/ + + ZtCBaseList& MoveLinkHead(ZCLink& AR_MoveLink) /*::::::::::::::::::::*/ + { + if(&AR_MoveLink==mp_HeadLink){return *this;} + + if(size()<=1){return *this;} AddLinkAfter + ( 0, CutLink(&AR_MoveLink) ) ; + return *this; /**************************/ + }/* + ZtCBaseList& MoveLinkHead(ZCLink& AR_MoveLink) ::::::::::::::::::::::*/ + ZtCBaseList& MoveLinkTail(ZCLink& AR_MoveLink) /*::::::::::::::::::::*/ + { + if(&AR_MoveLink==mp_TailLink){return *this;} + + if(size()<=1){return *this;} AddLinkBefore + ( 0, CutLink(&AR_MoveLink) ) ; + return *this; /**************************/ + }/* + ZtCBaseList& MoveLinkTail(ZCLink& AR_MoveLink) ::::::::::::::::::::::*/ + void SendOutHead(ZCLink& AR_CutLink, TypeThis& rhs) // AP_CutLink 를 잘라서 rhs 의 앞에 연결한다. { SendOutAfter (AR_CutLink, rhs, ZCLinkOpt(0)); } diff --git a/ZCppMainTest/ZtCBaseList_000.cpp b/ZCppMainTest/ZtCBaseList_000.cpp index 3a6ffe6..afdb453 100644 --- a/ZCppMainTest/ZtCBaseList_000.cpp +++ b/ZCppMainTest/ZtCBaseList_000.cpp @@ -619,6 +619,34 @@ namespace ZNsMain cout<<"*****************************************************"<