From 3eec5443aba8767d3995194b8599667af7d3497b Mon Sep 17 00:00:00 2001 From: sauron Date: Tue, 7 Oct 2025 21:31:41 +0900 Subject: [PATCH] commit 2025-10-07 21:31 CopyThis() => CopyThis() const : ZCppMain/ZtCLinkList.H --- ZCppMain/ZMainHead.H | 51 +++++++++++++++++++++++---------------- ZCppMain/ZtCLinkList.H | 52 ++++++++++++++++++++++++---------------- ZCppMain/ZtCObjList.H | 14 +++++------ ZCppMain/ZtCSimList.H | 24 +++++++++---------- ZCppMainTest/ZtCBaseList_000.cpp | 2 +- 5 files changed, 82 insertions(+), 61 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 8f08304..eca8caf 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -4065,11 +4065,11 @@ namespace ZNsMain { } ////////////////////////////////////// - _NP_ void SendFreeOutCopy /*////////////////////////////*/ + _NP_ void SendFreeOutCopy /*//////////////////////*/ ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const { } /*//////////////////////////////////////////////////*/ @@ -4217,7 +4217,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ////////////////////////////////////////////////////////// { // 총 AL_FarNum+1 개의 링크가 만들어짊. @@ -4244,11 +4244,11 @@ namespace ZNsMain APR_TailCopy=VP_TailLink; }/* - _NP_ void SendFreeOutCopy ////////////////////////////// + _NP_ void SendFreeOutCopy //////////////////////////////// ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ////////////////////////////////////////////////////////*/ @@ -4352,7 +4352,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ////////////////////////////////////////////////////////// { // 총 AL_FarNum+1 개의 링크가 만들어짊 @@ -4379,11 +4379,11 @@ namespace ZNsMain APR_TailCopy=VP_TailLink; }/* - _NP_ void SendFreeOutCopy ////////////////////////////// + _NP_ void SendFreeOutCopy //////////////////////////////// ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ////////////////////////////////////////////////////////*/ @@ -5447,6 +5447,12 @@ namespace ZNsMain }/* TypeChild& GetChildObj()*/ + const TypeChild& GetChildObj() const + { + return *static_cast(this); + }/* + const TypeChild& GetChildObj() const*/ + protected: ZCLink* NewLink() @@ -5501,7 +5507,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////// { // 총 AL_FarNum+1 개의 링크가 만들어짊 @@ -5532,7 +5538,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////*/ @@ -5602,25 +5608,30 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////// { // 총 AL_FarNum+1 개의 링크가 만들어짊 if(TTypeCRTP::ZEUseCRTP<1) { - NewLinkCopy(AP_LinkOrgin, AL_FarNum, APR_HeadCopy, APR_TailCopy); return; + NewLinkCopy /*::::::::::::::::::*/ + ( + AP_LinkOrgin, AL_FarNum , + APR_HeadCopy, APR_TailCopy + ); + return; /*::::::::::::::::::*/ }/* if(TTypeCRTP::ZEUseCRTP<1)*/ return GetChildObj().SendFreeOutCopy (AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy)); }/* - _VT_ void SendFreeOutCopy ///////////////////////// + _VT_ void SendFreeOutCopy /////////////////////////// ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////*/ @@ -6444,7 +6455,7 @@ namespace ZNsMain /*#####################################################################*/ - TypeThis& CopyThis(TypeThis& ARR_Rhs) + TypeThis& CopyThis(TypeThis& ARR_Rhs) const { // *this 를 복사해서, ARR_Rhs 의 끝에 연결한다. @@ -6462,13 +6473,13 @@ namespace ZNsMain TypeThis VO_TempList; - VO_TempList.mp_HeadLink=VP_HeadCopy; - VO_TempList.mp_TailLink=VP_TailCopy; - VO_TempList.ml_LinkSize=size() ; + VO_TempList.mp_HeadLink=VP_HeadCopy ; + VO_TempList.mp_TailLink=VP_TailCopy ; + VO_TempList.ml_LinkSize=size() ; - ARR_Rhs.JoinTail(VO_TempList); return *this; + return ARR_Rhs.JoinTail(VO_TempList); }/* - TypeThis& CopyThis(TypeThis& ARR_Rhs)*/ + TypeThis& CopyThis(TypeThis& ARR_Rhs) const*/ diff --git a/ZCppMain/ZtCLinkList.H b/ZCppMain/ZtCLinkList.H index 1cbcda5..6d7a332 100644 --- a/ZCppMain/ZtCLinkList.H +++ b/ZCppMain/ZtCLinkList.H @@ -1066,7 +1066,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////// { // 총 AL_FarNum+1 개의 링크가 만들어짊 @@ -1097,7 +1097,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////*/ @@ -1176,25 +1176,30 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////// { // 총 AL_FarNum+1 개의 링크가 만들어짊 if(TTypeCRTP::ZEUseCRTP<1) { - NewLinkCopy(AP_LinkOrgin, AL_FarNum, APR_HeadCopy, APR_TailCopy); return; + NewLinkCopy /*:::::::::::::::::::*/ + ( + AP_LinkOrgin, AL_FarNum , + APR_HeadCopy, APR_TailCopy + ); + return ; /*:::::::::::::::::::*/ }/* if(TTypeCRTP::ZEUseCRTP<1)*/ return GetChildObj().SendFreeOutCopy (AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy)); }/* - _VT_ void SendFreeOutCopy ///////////////////////// + _VT_ void SendFreeOutCopy /////////////////////////// ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////*/ @@ -1856,7 +1861,7 @@ namespace ZNsMain /*#####################################################################*/ - TypeThis& CopyThis(TypeThis& ARR_Rhs) + TypeThis& CopyThis(TypeThis& ARR_Rhs) const { // *this 를 복사해서, ARR_Rhs 의 끝에 연결한다. @@ -1874,13 +1879,13 @@ namespace ZNsMain TypeThis VO_TempList; - VO_TempList.mp_HeadLink=VP_HeadCopy; - VO_TempList.mp_TailLink=VP_TailCopy; - VO_TempList.ml_LinkSize=size() ; + VO_TempList.mp_HeadLink= VP_HeadCopy; + VO_TempList.mp_TailLink= VP_TailCopy; + VO_TempList.ml_LinkSize= size() ; - ARR_Rhs.JoinTail(VO_TempList); return *this; + return ARR_Rhs.JoinTail(VO_TempList); }/* - TypeThis& CopyThis(TypeThis& ARR_Rhs)*/ + TypeThis& CopyThis(TypeThis& ARR_Rhs) const*/ template void IterElement(TFunctor AO_Functor) @@ -2136,7 +2141,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////// { // 총 AL_FarNum+1 개의 링크가 만들어짊 @@ -2167,7 +2172,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////*/ @@ -2246,25 +2251,30 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////// { // 총 AL_FarNum+1 개의 링크가 만들어짊 if(TTypeCRTP::ZEUseCRTP<1) { - NewLinkCopy(AP_LinkOrgin, AL_FarNum, APR_HeadCopy, APR_TailCopy); return; + NewLinkCopy /*::::::::::::::::::::::::*/ + ( + AP_LinkOrgin, AL_FarNum , + APR_HeadCopy, APR_TailCopy + ); + return; /*::::::::::::::::::::::::*/ }/* if(TTypeCRTP::ZEUseCRTP<1)*/ return GetChildObj().SendFreeOutCopy (AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy)); }/* - _VT_ void SendFreeOutCopy ///////////////////////// + _VT_ void SendFreeOutCopy /////////////////////////// ( ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////*/ @@ -2767,7 +2777,7 @@ namespace ZNsMain /*#####################################################################*/ - TypeThis& CopyThis(TypeThis& ARR_Rhs) + TypeThis& CopyThis(TypeThis& ARR_Rhs) const { // *this 를 복사해서, ARR_Rhs 의 끝에 연결한다. @@ -2792,9 +2802,9 @@ namespace ZNsMain VO_TempList.ml_LinkSize = size() ; - ARR_Rhs.JoinTail(VO_TempList); return *this; + return ARR_Rhs.JoinTail(VO_TempList); }/* - TypeThis& CopyThis(TypeThis& ARR_Rhs)*/ + TypeThis& CopyThis(TypeThis& ARR_Rhs) const*/ diff --git a/ZCppMain/ZtCObjList.H b/ZCppMain/ZtCObjList.H index 8bb5d41..1f82df5 100644 --- a/ZCppMain/ZtCObjList.H +++ b/ZCppMain/ZtCObjList.H @@ -1438,11 +1438,11 @@ namespace ZNsMain /////////////////////////////////////////////////////////*/ - if(ARR_StoreList.IsEmpty()!=true) + if(ARR_Rhs.IsEmpty()!=true) { - return ARR_StoreList; + return ARR_Rhs; }/* - if(ARR_StoreList.IsEmpty()!=true)*/ + if(ARR_Rhs.IsEmpty()!=true)*/ ZCLink* VP_HeadLink=0; ZCLink* VP_TailLink=0; @@ -1466,12 +1466,12 @@ namespace ZNsMain return ARR_Rhs.JoinTail(VO_TempList); }/* - ZtCObjList& CopyLink ########################################################### + ZtCObjList& CopyLink ############################################################ ( const ZCLink* AP_CopyLink , TypeSize AL_FarNum , TypeThis& ARR_Rhs - ) const + ) const ###############################################################################*/ @@ -1513,7 +1513,7 @@ namespace ZNsMain TypeSize AL_LinkSize, ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink) const */ - void GetManyLinkCopy /*#######################################################*/ + void GetManyLinkCopy /*########################################################*/ ( ZCLink* AP_CopyLink , TypeSize AL_FarNum , ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink @@ -1525,7 +1525,7 @@ namespace ZNsMain mo_FreeObjt.SendFreeOutCopy (AP_CopyLink, AL_FarNum, RR(APR_HeadLink), RR(APR_TailLink)); }/* - void GetManyLinkCopy ########################################################### + void GetManyLinkCopy ############################################################ ( ZCLink* AP_CopyLink , TypeSize AL_FarNum , ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink diff --git a/ZCppMain/ZtCSimList.H b/ZCppMain/ZtCSimList.H index c4ae174..88938c2 100644 --- a/ZCppMain/ZtCSimList.H +++ b/ZCppMain/ZtCSimList.H @@ -977,18 +977,18 @@ namespace ZNsMain /////////////////////////////////////////////////////////////// - ZtCSimList& CopyLink /*######################################*/ + ZtCSimList& CopyLink const /*################################*/ ( const ZCLink* const AP_CopyLink , TTypSize AL_FarNum , - ZtCSimList& ARR_StoreList + ZtCSimList& ARR_Rhs ) const /*###########################################################*/ { // AP_CopyLink 부터 AP_CopyLink->GetNextPrePtr(AL_FarNum) // 링크까지를 복사한다. 총 AL_FarNum + 1 개의 링크가 만들어진다. // - // ARR_StoreList.size() 는 0 이어야 한다. + // ARR_Rhs.size() 는 0 이어야 한다. ZCLink* VP_HeadLink=0; ZCLink* VP_TailLink=0; @@ -1004,17 +1004,17 @@ namespace ZNsMain ZCLink::MakeRing(VP_HeadLink, VP_TailLink); - ARR_StoreList.mp_HeadLink= VP_HeadLink ; - ARR_StoreList.mp_TailLink= VP_TailLink ; - ARR_StoreList.ml_LinkSize= AL_FarNum+1 ; + ARR_Rhs.mp_HeadLink= VP_HeadLink ; + ARR_Rhs.mp_TailLink= VP_TailLink ; + ARR_Rhs.ml_LinkSize= AL_FarNum+1 ; - return ARR_StoreList; + return ARR_Rhs; }/* ZtCSimList& CopyLink ########################################## ( const ZCLink* const AP_CopyLink , TTypSize AL_FarNum , - ZtCSimList& ARR_StoreList + ZtCSimList& ARR_Rhs ) const #############################################################*/ @@ -1082,12 +1082,12 @@ namespace ZNsMain else { AP_PrevLink->mp_NextLink=AP_CutLink->mp_NextLink; - } - //else + }/* + else*/ return (--ml_LinkSize, AP_CutLink); - } - //ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos) + }/* + ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)*/ ZtCSimList& CutLink /*###############################*/ diff --git a/ZCppMainTest/ZtCBaseList_000.cpp b/ZCppMainTest/ZtCBaseList_000.cpp index 3d8aabb..e2f71c9 100644 --- a/ZCppMainTest/ZtCBaseList_000.cpp +++ b/ZCppMainTest/ZtCBaseList_000.cpp @@ -157,7 +157,7 @@ namespace ZNsMain ( ZCLink* AP_LinkOrgin, ZTypLong AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy - ) + ) const ///////////////////////////////////////////////////// { cout<<"** ZCBaseListEx10 : SendFreeOut(ZCLink*, "<