From 3bfc5f835566205c9f9deb6aa0cab248de0416ee Mon Sep 17 00:00:00 2001 From: sauron Date: Sat, 4 Oct 2025 09:54:37 +0900 Subject: [PATCH] commit 2025-10-04 09:54 IterElemLink() in ZtCBaseList : ZCppMain/ZMainHead.H --- ZCppMain/ZMainHead.H | 41 ++++++++++++++++++++++++++++++++++++++ ZCppMain/ZtCObjList.H | 44 +++++++++++++++++++++++++++++++++++++++-- ZCppMain/ZtCSimList.H | 40 +++++++++++++++++++++++++++++++++++++ ZCppMainTest/ZtCObjList_000.cpp | 23 +++++++++++++++++++++ 4 files changed, 146 insertions(+), 2 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 87284ef..b89f5c2 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -6256,6 +6256,47 @@ namespace ZNsMain ###############################################################################*/ + template void IterElemLink(TFunctor AO_Functor) + { + ZCLink* VP_LoopLink=mp_HeadLink; + + __for0(TypeSize, i, ml_LinkSize) + { + ZtCTypeData:: + GetObjRef(AO_Functor)( *VP_LoopLink ); + + VP_LoopLink = VP_LoopLink->mp_NextLink ; + }/* + __for0(TypeSize, i, ml_LinkSize)*/ + }/* + template void IterElemLink(TFunctor AO_Functor) */ + + + template + void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef; + + ZCLink* VP_LoopLink=mp_HeadLink; + + __for0(TypeSize, i, ml_LinkSize) + { + ZtCTypeData::GetObjRef(AO_Functor) + ( + *VP_LoopLink, ZCCheckRef::PassData(AO_TypeHelp) + ); + //////////////////////////////////////////// + + VP_LoopLink = VP_LoopLink->mp_NextLink ; + }/* + __for0(TypeSize, i, ml_LinkSize)*/ + }/* + template + void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */ + + + ZCLink* GetHeadLinkPtr(){return mp_HeadLink;} ZCLink* GetTailLinkPtr(){return mp_TailLink;} diff --git a/ZCppMain/ZtCObjList.H b/ZCppMain/ZtCObjList.H index fc96010..4b2dc20 100644 --- a/ZCppMain/ZtCObjList.H +++ b/ZCppMain/ZtCObjList.H @@ -934,7 +934,7 @@ namespace ZNsMain ZCLink* VP_TmpLink =this; while(VL_LoopIndex++ < AL_Distance) - VP_TmpLink = VP_TmpLink->mp_PrevtLink ; + VP_TmpLink = VP_TmpLink->mp_PrevLink ; return VP_TmpLink; }/* @@ -959,7 +959,7 @@ namespace ZNsMain ZCLink* VP_TmpLink = const_cast(this) ; while(VL_LoopIndex++ < AL_Distance) - VP_TmpLink = VP_TmpLink->mp_PrevtLink ; + VP_TmpLink = VP_TmpLink->mp_PrevLink ; return VP_TmpLink; }/* @@ -2560,6 +2560,46 @@ namespace ZNsMain ###############################################################################*/ + template void IterElemLink(TFunctor AO_Functor) + { + ZCLink* VP_LoopLink=mp_HeadLink; + + __for0(TypeSize, i, ml_LinkSize) + { + ZtCTypeData:: + GetObjRef(AO_Functor)( *VP_LoopLink ); + + VP_LoopLink = VP_LoopLink->mp_NextLink ; + }/* + __for0(TypeSize, i, ml_LinkSize)*/ + }/* + template void IterElemLink(TFunctor AO_Functor) */ + + + template + void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef; + + ZCLink* VP_LoopLink=mp_HeadLink; + + __for0(TypeSize, i, ml_LinkSize) + { + ZtCTypeData::GetObjRef(AO_Functor) + ( + *VP_LoopLink, ZCCheckRef::PassData(AO_TypeHelp) + ); + //////////////////////////////////////////// + + VP_LoopLink = VP_LoopLink->mp_NextLink ; + }/* + __for0(TypeSize, i, ml_LinkSize)*/ + }/* + template + void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */ + + template void IterElemLink /////////////////////// ( ZCLink& AR_StdLink , diff --git a/ZCppMain/ZtCSimList.H b/ZCppMain/ZtCSimList.H index b3ef965..9867321 100644 --- a/ZCppMain/ZtCSimList.H +++ b/ZCppMain/ZtCSimList.H @@ -2198,6 +2198,46 @@ namespace ZNsMain template void IterElemDel(TFunctor AO_Functor) */ + template void IterElemLink(TFunctor AO_Functor) + { + ZCLink* VP_LoopLink=mp_HeadLink; + + __for0(TypeSize, i, ml_LinkSize) + { + ZtCTypeData:: + GetObjRef(AO_Functor)( *VP_LoopLink ); + + VP_LoopLink = VP_LoopLink->mp_NextLink ; + }/* + __for0(TypeSize, i, ml_LinkSize)*/ + }/* + template void IterElemLink(TFunctor AO_Functor) */ + + + template + void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef; + + ZCLink* VP_LoopLink=mp_HeadLink; + + __for0(TypeSize, i, ml_LinkSize) + { + ZtCTypeData::GetObjRef(AO_Functor) + ( + *VP_LoopLink, ZCCheckRef::PassData(AO_TypeHelp) + ); + //////////////////////////////////////////// + + VP_LoopLink = VP_LoopLink->mp_NextLink ; + }/* + __for0(TypeSize, i, ml_LinkSize)*/ + }/* + template + void IterElemLink(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */ + + template void IterElemLink /////////////////////// ( ZCLink* AP_StdLink , diff --git a/ZCppMainTest/ZtCObjList_000.cpp b/ZCppMainTest/ZtCObjList_000.cpp index b488134..fa4a172 100644 --- a/ZCppMainTest/ZtCObjList_000.cpp +++ b/ZCppMainTest/ZtCObjList_000.cpp @@ -33,6 +33,9 @@ namespace ZNsMain typedef ZtCObjList CStringList2 ; + typedef CStringList1::ZCLink ZCLink1; + typedef CStringList2::ZCLink ZCLink2; + static void ShowDataInNode(const CStringBase& AR_Data) { @@ -40,6 +43,23 @@ namespace ZNsMain }/* static void ShowDataInNode(const CStringBase& AR_Data)*/ + static void ShowNode1(ZCLink1& AR_CLink) + { + cout<<"* Node Prev : "<<*(AR_CLink-1)<