From 290b72d362713bb8d557b668d6d1e07eff931ef5 Mon Sep 17 00:00:00 2001 From: sauron Date: Sun, 28 Sep 2025 10:30:50 +0900 Subject: [PATCH] commit 2025-09-28 10:30 edit a bit ZCppMain/ZtCSortObjList.H --- ZCppMain/ZMainHead.H | 34 +++++++++++ ZCppMain/ZtCObjList.H | 34 ----------- ZCppMain/ZtCSortObjList.H | 149 +++++++++++++++++++++++----------------------- 3 files changed, 109 insertions(+), 108 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 7941131..2f7de42 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -5609,6 +5609,12 @@ namespace ZNsMain ZtCTypeData:: GetObjRef(AO_Functor)(VP_LoopLink->mo_Data); + /* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, + operator() 연산자를 가진 object 포인터일 때도 사용할 수 + 있게 되었다. + + 이제는 ZftMCP() 템플릿 함수를 사용해도 된다. -- 2025-09-27 00:38 + */ VP_LoopLink = VP_LoopLink->mp_NextLink ; }/* __for0(TypeSize, i, ml_Size)*/ @@ -5618,6 +5624,28 @@ namespace ZNsMain template void IterElement(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) { + /*///////////////////////////////////////////////////////////////////////////// + + ■ TTypeHelp 가 class 일 경우, 크기가 커서 참조로 넘어가야 한다면, + + IterElement(myFunctor_obj, myClass_Obj); + + 의 형태로 호출할 게 아니라, ZtCObjectPtr<> 을 사용하여, + + myClass myClass_Obj; ZtCObjectPtr myCObjPtr(myClass_Obj); + + 나 + + IterElement(myFunctor_obj, ZtCObjectPtr(myClass_Obj)); + + 형태를 사용하면 좋을 것 같다. -- 2014-06-16 23:11:00 + + + 이제는 ZtCRef 과 ZCCheckRef 클래스 템플릿을 사용하면 된다. -- 2021-03-11 11:00 + 다시 말하면 ZftMCP() 템플릿 함수를 사용하면 된다. -- 2025-09-27 01:01 + + /////////////////////////////////////////////////////////////////////////////*/ + typedef ZNsMain:: ZtCCheckRef ZCCheckRef; @@ -5631,6 +5659,12 @@ namespace ZNsMain ); //////////////////////////////////////////// + /* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, operator() + 연산자를 가진 object 포인터일 때도 사용할 수 있게 되었다. */ + + /* ZCCheckRef::PassData() 으로 인해, 인수를 ZtCRef 클래스를 이용해 + 인수를 참조로 넘길 수 있게 되었다. -- 2021-03-10 16:56 */ + VP_LoopLink = VP_LoopLink->mp_NextLink ; }/* __for0(TypeSize, i, ml_Size)*/ diff --git a/ZCppMain/ZtCObjList.H b/ZCppMain/ZtCObjList.H index 43c2979..1664167 100644 --- a/ZCppMain/ZtCObjList.H +++ b/ZCppMain/ZtCObjList.H @@ -2327,12 +2327,6 @@ namespace ZNsMain ZtCTypeData:: GetObjRef(AO_Functor)( VP_LoopLink->mo_Data ); - /* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, - operator() 연산자를 가진 object 포인터일 때도 사용할 수 - 있게 되었다. - - 이제는 ZftMCP() 템플릿 함수를 사용해도 된다. -- 2025-09-27 00:38 - */ VP_LoopLink = VP_LoopLink->mp_NextLink ; }/* __for0(TypeSize, i, ml_Size)*/ @@ -2343,28 +2337,6 @@ namespace ZNsMain template void IterElement(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) { - /*///////////////////////////////////////////////////////////////////////////// - - ■ TTypeHelp 가 class 일 경우, 크기가 커서 참조로 넘어가야 한다면, - - IterElement(myFunctor_obj, myClass_Obj); - - 의 형태로 호출할 게 아니라, ZtCObjectPtr<> 을 사용하여, - - myClass myClass_Obj; ZtCObjectPtr myCObjPtr(myClass_Obj); - - 나 - - IterElement(myFunctor_obj, ZtCObjectPtr(myClass_Obj)); - - 형태를 사용하면 좋을 것 같다. -- 2014-06-16 23:11:00 - - - 이제는 ZtCRef 과 ZCCheckRef 클래스 템플릿을 사용하면 된다. -- 2021-03-11 11:00 - 다시 말하면 ZftMCP() 템플릿 함수를 사용하면 된다. -- 2025-09-27 01:01 - - /////////////////////////////////////////////////////////////////////////////*/ - typedef ZNsMain:: ZtCCheckRef ZCCheckRef; @@ -2378,12 +2350,6 @@ namespace ZNsMain ); //////////////////////////////////////////// - /* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, operator() - 연산자를 가진 object 포인터일 때도 사용할 수 있게 되었다. */ - - /* ZCCheckRef::PassData() 으로 인해, 인수를 ZtCRef 클래스를 이용해 - 인수를 참조로 넘길 수 있게 되었다. -- 2021-03-10 16:56 */ - VP_LoopLink = VP_LoopLink->mp_NextLink ; }/* __for0(TypeSize, i, ml_Size)*/ diff --git a/ZCppMain/ZtCSortObjList.H b/ZCppMain/ZtCSortObjList.H index 8e43144..b2adccf 100644 --- a/ZCppMain/ZtCSortObjList.H +++ b/ZCppMain/ZtCSortObjList.H @@ -66,42 +66,42 @@ namespace ZNsMain static void QuickSort ( - TTypFuncIsMore APF_IsMore , - TTypFuncIsLess APF_IsLess , - ZCLink* APA_LinkPtrArr[], - TypeSize AL_FirstIndex , - TypeSize AL_LastIndex + TTypFuncIsMore APF_IsMore , + TTypFuncIsLess APF_IsLess , + ZCLink* APA_LinkPtrArr[], + TypeSize AL_HeadIndex , + TypeSize AL_TailIndex ) /*##################################################*/ { - if(AL_FirstIndexi && APF_IsLess(APA_LinkPtrArr[++i]->GetData(), VP_PivotLinkPtr->GetData())); - while(AL_FirstIndexGetData(), VP_PivotLinkPtr->GetData())); + while(AL_TailIndex >i && APF_IsLess(APA_LinkPtrArr[++i]->GetData(), VP_PivotLinkPtr->GetData()) ); + while(AL_HeadIndex GetData(), VP_PivotLinkPtr->GetData()) ); - if(i @@ -110,91 +110,91 @@ namespace ZNsMain TTypFuncIsMore APF_IsMore , TTypFuncIsLess APF_IsLess , ZCLink* APA_LinkPtrArr[], - TypeSize AL_FirstIndex , - TypeSize AL_LastIndex + TypeSize AL_HeadIndex , + TypeSize AL_TailIndex ) - ###########################################################*/ + ####################################################*/ static void QuickSortAsc ( - ZCLink* APA_LinkPtrArr[], TypeSize AL_FirstIndex, TypeSize AL_LastIndex + ZCLink* APA_LinkPtrArr[], TypeSize AL_HeadIndex, TypeSize AL_TailIndex ) /*####################*/ { - if(AL_FirstIndexi && APA_LinkPtrArr[++i]->GetData() < VP_PivotLinkPtr->GetData()); - while(AL_FirstIndexGetData() > VP_PivotLinkPtr->GetData()); + while(AL_TailIndex >i && APA_LinkPtrArr[++i]->GetData() < VP_PivotLinkPtr->GetData()); + while(AL_HeadIndex GetData() > VP_PivotLinkPtr->GetData()); if(ii && APA_LinkPtrArr[++i]->GetData() > VP_PivotLinkPtr->GetData()); - while(AL_FirstIndexGetData() < VP_PivotLinkPtr->GetData()); + while(AL_TailIndex >i && APA_LinkPtrArr[++i]->GetData() > VP_PivotLinkPtr->GetData()); + while(AL_HeadIndex GetData() < VP_PivotLinkPtr->GetData()); if(iGetNextPtr(); + VPP_LinkPtrArr[i]= VP_TempLink; + VP_TempLink = VP_TempLink->GetNextPtr(); }/* ///////////////////////*/ @@ -290,7 +290,7 @@ namespace ZNsMain { ZCLink::JoinLink(VPP_LinkPtrArr[i-1], VPP_LinkPtrArr[i]); }/* - //////////////////////////*/ + for(i=1; ii && APF_IsLess(APA_LinkPtrArr[++i]->GetData(), VP_PivotLinkPtr->GetData())); - while(AL_FirstIndexGetData(), VP_PivotLinkPtr->GetData())); + while(AL_TailIndex >i && APF_IsLess(APA_LinkPtrArr[++i]->GetData(), VP_PivotLinkPtr->GetData())); + while(AL_HeadIndex GetData(), VP_PivotLinkPtr->GetData())); if(i @@ -770,8 +770,8 @@ namespace ZNsMain TTypFuncIsMore APF_IsMore , TTypFuncIsLess APF_IsLess , ZCLink* APA_LinkPtrArr[], - TypeSize AL_FirstIndex , - TypeSize AL_LastIndex + TypeSize AL_HeadIndex , + TypeSize AL_TailIndex ) /*##################################################*/ @@ -812,13 +812,14 @@ namespace ZNsMain } ///////////////////////// - QuickSort(APF_IsMore, APF_IsLess, VPP_LinkPtrArr, 0, VL_SortSize-1); + QuickSort + (APF_IsMore, APF_IsLess, VPP_LinkPtrArr, 0, VL_SortSize-1); for(i=1; i