commit 2025-10-07 21:31 CopyThis() => CopyThis() const : ZCppMain/ZtCLinkList.H

This commit is contained in:
2025-10-07 21:31:41 +09:00
parent 34b5db2822
commit 3eec5443ab
5 changed files with 82 additions and 61 deletions

View File

@ -4065,11 +4065,11 @@ namespace ZNsMain
{ } ////////////////////////////////////// { } //////////////////////////////////////
_NP_ void SendFreeOutCopy /*////////////////////////////*/ _NP_ void SendFreeOutCopy /*//////////////////////*/
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
{ } /*//////////////////////////////////////////////////*/ { } /*//////////////////////////////////////////////////*/
@ -4217,7 +4217,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
{ {
// 총 AL_FarNum+1 개의 링크가 만들어짊. // 총 AL_FarNum+1 개의 링크가 만들어짊.
@ -4244,11 +4244,11 @@ namespace ZNsMain
APR_TailCopy=VP_TailLink; APR_TailCopy=VP_TailLink;
}/* }/*
_NP_ void SendFreeOutCopy ////////////////////////////// _NP_ void SendFreeOutCopy ////////////////////////////////
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
////////////////////////////////////////////////////////*/ ////////////////////////////////////////////////////////*/
@ -4352,7 +4352,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
{ {
// 총 AL_FarNum+1 개의 링크가 만들어짊 // 총 AL_FarNum+1 개의 링크가 만들어짊
@ -4379,11 +4379,11 @@ namespace ZNsMain
APR_TailCopy=VP_TailLink; APR_TailCopy=VP_TailLink;
}/* }/*
_NP_ void SendFreeOutCopy ////////////////////////////// _NP_ void SendFreeOutCopy ////////////////////////////////
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
////////////////////////////////////////////////////////*/ ////////////////////////////////////////////////////////*/
@ -5447,6 +5447,12 @@ namespace ZNsMain
}/* }/*
TypeChild& GetChildObj()*/ TypeChild& GetChildObj()*/
const TypeChild& GetChildObj() const
{
return *static_cast<const TypeChild*>(this);
}/*
const TypeChild& GetChildObj() const*/
protected: protected:
ZCLink* NewLink() ZCLink* NewLink()
@ -5501,7 +5507,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
{ {
// 총 AL_FarNum+1 개의 링크가 만들어짊 // 총 AL_FarNum+1 개의 링크가 만들어짊
@ -5532,7 +5538,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////*/ ///////////////////////////////////////////////////*/
@ -5602,25 +5608,30 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
{ {
// 총 AL_FarNum+1 개의 링크가 만들어짊 // 총 AL_FarNum+1 개의 링크가 만들어짊
if(TTypeCRTP::ZEUseCRTP<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)*/ if(TTypeCRTP::ZEUseCRTP<1)*/
return GetChildObj().SendFreeOutCopy return GetChildObj().SendFreeOutCopy
(AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy)); (AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy));
}/* }/*
_VT_ void SendFreeOutCopy ///////////////////////// _VT_ void SendFreeOutCopy ///////////////////////////
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy 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 의 끝에 연결한다. // *this 를 복사해서, ARR_Rhs 의 끝에 연결한다.
@ -6466,9 +6477,9 @@ namespace ZNsMain
VO_TempList.mp_TailLink=VP_TailCopy ; VO_TempList.mp_TailLink=VP_TailCopy ;
VO_TempList.ml_LinkSize=size() ; 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*/

View File

@ -1066,7 +1066,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
{ {
// 총 AL_FarNum+1 개의 링크가 만들어짊 // 총 AL_FarNum+1 개의 링크가 만들어짊
@ -1097,7 +1097,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////*/ ///////////////////////////////////////////////////*/
@ -1176,25 +1176,30 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
{ {
// 총 AL_FarNum+1 개의 링크가 만들어짊 // 총 AL_FarNum+1 개의 링크가 만들어짊
if(TTypeCRTP::ZEUseCRTP<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)*/ if(TTypeCRTP::ZEUseCRTP<1)*/
return GetChildObj().SendFreeOutCopy return GetChildObj().SendFreeOutCopy
(AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy)); (AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy));
}/* }/*
_VT_ void SendFreeOutCopy ///////////////////////// _VT_ void SendFreeOutCopy ///////////////////////////
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy 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 의 끝에 연결한다. // *this 를 복사해서, ARR_Rhs 의 끝에 연결한다.
@ -1878,9 +1883,9 @@ namespace ZNsMain
VO_TempList.mp_TailLink= VP_TailCopy; VO_TempList.mp_TailLink= VP_TailCopy;
VO_TempList.ml_LinkSize= size() ; 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<typename TFunctor> void IterElement(TFunctor AO_Functor) template<typename TFunctor> void IterElement(TFunctor AO_Functor)
@ -2136,7 +2141,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
{ {
// 총 AL_FarNum+1 개의 링크가 만들어짊 // 총 AL_FarNum+1 개의 링크가 만들어짊
@ -2167,7 +2172,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////*/ ///////////////////////////////////////////////////*/
@ -2246,25 +2251,30 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
{ {
// 총 AL_FarNum+1 개의 링크가 만들어짊 // 총 AL_FarNum+1 개의 링크가 만들어짊
if(TTypeCRTP::ZEUseCRTP<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)*/ if(TTypeCRTP::ZEUseCRTP<1)*/
return GetChildObj().SendFreeOutCopy return GetChildObj().SendFreeOutCopy
(AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy)); (AP_LinkOrgin, AL_FarNum, RR(APR_HeadCopy), RR(APR_TailCopy));
}/* }/*
_VT_ void SendFreeOutCopy ///////////////////////// _VT_ void SendFreeOutCopy ///////////////////////////
( (
ZCLink* AP_LinkOrgin, TypeSize AL_FarNum , ZCLink* AP_LinkOrgin, TypeSize AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy 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 의 끝에 연결한다. // *this 를 복사해서, ARR_Rhs 의 끝에 연결한다.
@ -2792,9 +2802,9 @@ namespace ZNsMain
VO_TempList.ml_LinkSize = size() ; 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*/

View File

@ -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_HeadLink=0;
ZCLink* VP_TailLink=0; ZCLink* VP_TailLink=0;
@ -1466,7 +1466,7 @@ namespace ZNsMain
return ARR_Rhs.JoinTail(VO_TempList); return ARR_Rhs.JoinTail(VO_TempList);
}/* }/*
ZtCObjList& CopyLink ########################################################### ZtCObjList& CopyLink ############################################################
( (
const ZCLink* AP_CopyLink , const ZCLink* AP_CopyLink ,
TypeSize AL_FarNum , TypeSize AL_FarNum ,
@ -1513,7 +1513,7 @@ namespace ZNsMain
TypeSize AL_LinkSize, ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink) const */ TypeSize AL_LinkSize, ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink) const */
void GetManyLinkCopy /*#######################################################*/ void GetManyLinkCopy /*########################################################*/
( (
ZCLink* AP_CopyLink , TypeSize AL_FarNum , ZCLink* AP_CopyLink , TypeSize AL_FarNum ,
ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink
@ -1525,7 +1525,7 @@ namespace ZNsMain
mo_FreeObjt.SendFreeOutCopy mo_FreeObjt.SendFreeOutCopy
(AP_CopyLink, AL_FarNum, RR(APR_HeadLink), RR(APR_TailLink)); (AP_CopyLink, AL_FarNum, RR(APR_HeadLink), RR(APR_TailLink));
}/* }/*
void GetManyLinkCopy ########################################################### void GetManyLinkCopy ############################################################
( (
ZCLink* AP_CopyLink , TypeSize AL_FarNum , ZCLink* AP_CopyLink , TypeSize AL_FarNum ,
ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink

View File

@ -977,18 +977,18 @@ namespace ZNsMain
/////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////
ZtCSimList& CopyLink /*######################################*/ ZtCSimList& CopyLink const /*################################*/
( (
const ZCLink* const AP_CopyLink , const ZCLink* const AP_CopyLink ,
TTypSize AL_FarNum , TTypSize AL_FarNum ,
ZtCSimList& ARR_StoreList ZtCSimList& ARR_Rhs
) const ) const
/*###########################################################*/ /*###########################################################*/
{ {
// AP_CopyLink 부터 AP_CopyLink->GetNextPrePtr(AL_FarNum) // AP_CopyLink 부터 AP_CopyLink->GetNextPrePtr(AL_FarNum)
// 링크까지를 복사한다. 총 AL_FarNum + 1 개의 링크가 만들어진다. // 링크까지를 복사한다. 총 AL_FarNum + 1 개의 링크가 만들어진다.
// //
// ARR_StoreList.size() 는 0 이어야 한다. // ARR_Rhs.size() 는 0 이어야 한다.
ZCLink* VP_HeadLink=0; ZCLink* VP_HeadLink=0;
ZCLink* VP_TailLink=0; ZCLink* VP_TailLink=0;
@ -1004,17 +1004,17 @@ namespace ZNsMain
ZCLink::MakeRing(VP_HeadLink, VP_TailLink); ZCLink::MakeRing(VP_HeadLink, VP_TailLink);
ARR_StoreList.mp_HeadLink= VP_HeadLink ; ARR_Rhs.mp_HeadLink= VP_HeadLink ;
ARR_StoreList.mp_TailLink= VP_TailLink ; ARR_Rhs.mp_TailLink= VP_TailLink ;
ARR_StoreList.ml_LinkSize= AL_FarNum+1 ; ARR_Rhs.ml_LinkSize= AL_FarNum+1 ;
return ARR_StoreList; return ARR_Rhs;
}/* }/*
ZtCSimList& CopyLink ########################################## ZtCSimList& CopyLink ##########################################
( (
const ZCLink* const AP_CopyLink , const ZCLink* const AP_CopyLink ,
TTypSize AL_FarNum , TTypSize AL_FarNum ,
ZtCSimList& ARR_StoreList ZtCSimList& ARR_Rhs
) const ) const
#############################################################*/ #############################################################*/
@ -1082,12 +1082,12 @@ namespace ZNsMain
else else
{ {
AP_PrevLink->mp_NextLink=AP_CutLink->mp_NextLink; AP_PrevLink->mp_NextLink=AP_CutLink->mp_NextLink;
} }/*
//else else*/
return (--ml_LinkSize, AP_CutLink); 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 /*###############################*/ ZtCSimList& CutLink /*###############################*/

View File

@ -157,7 +157,7 @@ namespace ZNsMain
( (
ZCLink* AP_LinkOrgin, ZTypLong AL_FarNum , ZCLink* AP_LinkOrgin, ZTypLong AL_FarNum ,
ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy
) ) const
///////////////////////////////////////////////////// /////////////////////////////////////////////////////
{ {
cout<<"** ZCBaseListEx10 : SendFreeOut(ZCLink*, "<<AL_FarNum<<", ZCLink*&, ZCLink*&)"<<endl; cout<<"** ZCBaseListEx10 : SendFreeOut(ZCLink*, "<<AL_FarNum<<", ZCLink*&, ZCLink*&)"<<endl;