commit 2025-10-07 19:40 add CopyThis() in ZCppMain/ZtCLinkList.H

This commit is contained in:
2025-10-07 19:40:21 +09:00
parent 3db771e9d9
commit 5f707743a4
5 changed files with 126 additions and 8 deletions

View File

@ -6444,6 +6444,33 @@ namespace ZNsMain
/*#####################################################################*/
TypeThis& CopyThis(TypeThis& ARR_Rhs)
{
// *this 를 복사해서, ARR_Rhs 의 끝에 연결한다.
if(size()<1) return ARR_Rhs;
ZCLink* VP_HeadCopy=0;
ZCLink* VP_TailCopy=0;
SendFreeOutCopy ////////////////////////
(
mp_HeadLink , size()-1,
RR(VP_HeadCopy), RR(VP_TailCopy)
);
////////////////////////////////////////
TypeThis VO_TempList;
VO_TempList.mp_HeadLink=VP_HeadCopy;
VO_TempList.mp_TailLink=VP_TailCopy;
VO_TempList.ml_LinkSize=size() ;
ARR_Rhs.JoinTail(VO_TempList); return *this;
}/*
TypeThis& CopyThis(TypeThis& ARR_Rhs)*/
TypeData& GetHeadData(){return mp_HeadLink->mo_DataObjt;}
TypeData& GetTailData(){return mp_TailLink->mo_DataObjt;}

View File

@ -1856,6 +1856,33 @@ namespace ZNsMain
/*#####################################################################*/
TypeThis& CopyThis(TypeThis& ARR_Rhs)
{
// *this 를 복사해서, ARR_Rhs 의 끝에 연결한다.
if(size()<1) return ARR_Rhs;
ZCLink* VP_HeadCopy=0;
ZCLink* VP_TailCopy=0;
SendFreeOutCopy ////////////////////////
(
mp_HeadLink , size()-1,
RR(VP_HeadCopy), RR(VP_TailCopy)
);
////////////////////////////////////////
TypeThis VO_TempList;
VO_TempList.mp_HeadLink=VP_HeadCopy;
VO_TempList.mp_TailLink=VP_TailCopy;
VO_TempList.ml_LinkSize=size() ;
ARR_Rhs.JoinTail(VO_TempList); return *this;
}/*
TypeThis& CopyThis(TypeThis& ARR_Rhs)*/
template<typename TFunctor> void IterElement(TFunctor AO_Functor)
{
ZCLink* VP_LoopLink=mp_HeadLink;
@ -2740,6 +2767,37 @@ namespace ZNsMain
/*#####################################################################*/
TypeThis& CopyThis(TypeThis& ARR_Rhs)
{
// *this 를 복사해서, ARR_Rhs 의 끝에 연결한다.
if(size()<1) return ARR_Rhs;
ZCLink* VP_HeadCopy=0;
ZCLink* VP_TailCopy=0;
SendFreeOutCopy ////////////////////////////////
(
mo_HeadFake.mp_NextLink, size()-1,
RR(VP_HeadCopy) , RR(VP_TailCopy)
);
////////////////////////////////////////////////
TypeThis VO_TempList;
ZCLink::JoinLink
( &VO_TempList.mo_HeadFake, VP_HeadCopy );
ZCLink::JoinLink
( VP_TailCopy, &VO_TempList.mo_TailFake );
VO_TempList.ml_LinkSize = size() ;
ARR_Rhs.JoinTail(VO_TempList); return *this;
}/*
TypeThis& CopyThis(TypeThis& ARR_Rhs)*/
template<typename TFunctor> void IterElement(TFunctor AO_Functor)
{
ZCLink* VP_LoopLink=mo_HeadFake.mp_NextLink;

View File

@ -1422,7 +1422,7 @@ namespace ZNsMain
(
const ZCLink* AP_CopyLink ,
TypeSize AL_FarNum ,
ZtCObjList& ARR_StoreList
TypeThis& ARR_Rhs
) const
/*#############################################################################*/
{
@ -1458,25 +1458,28 @@ namespace ZNsMain
ZCLink::MakeRing(VP_HeadLink, VP_TailLink);
ARR_StoreList.mp_HeadLink = VP_HeadLink;
ARR_StoreList.ml_LinkSize = (AL_FarNum<0 ? -AL_FarNum : AL_FarNum)+1 ;
TypeThis VO_TempList;
return ARR_StoreList;
VO_TempList.mp_HeadLink = VP_HeadLink ;
VO_TempList.ml_LinkSize =
(AL_FarNum<0 ? -AL_FarNum : AL_FarNum)+1 ;
return ARR_Rhs.JoinTail(VO_TempList);
}/*
ZtCObjList& CopyLink ###########################################################
(
const ZCLink* AP_CopyLink ,
TypeSize AL_FarNum ,
ZtCObjList& ARR_StoreList
TypeThis& ARR_Rhs
) const
###############################################################################*/
ZtCObjList& CopyThis(ZtCObjList& ARR_StoreList) const
ZtCObjList& CopyThis(ZtCObjList& ARR_Rhs) const
{
return CopyLink(mp_HeadLink, ml_LinkSize-1, RR(ARR_StoreList));
return CopyLink(mp_HeadLink, ml_LinkSize-1, RR(ARR_Rhs));
}/*
ZtCObjList& CopyThis(ZtCObjList& ARR_StoreList) const*/
ZtCObjList& CopyThis(ZtCObjList& ARR_Rhs) const*/
ZtCObjList& MakeDefault

View File

@ -39,6 +39,16 @@ namespace ZNsMain
mo_DataCStr(rhs.mo_DataCStr)
{cout<<"* ZCLinkData(const ZCLinkData& rhs) : "<<++ZCLinkData::SI_CallCnt<<endl;}
ZCLinkData(const TypeBase& rhs) :
ZNsIFaceEx::
ZtCLink<ZCEmpty, ZCLinkData>(),
mo_DataCStr
(
(*static_cast<const ZCLinkData*>(&rhs)).mo_DataCStr
)
{cout<<"* ZCLinkData(const TypeBase& rhs) : "<<++ZCLinkData::SI_CallCnt<<endl;}
ZCLinkData& operator=(const ZCLinkData& rhs)
{
mo_DataCStr = rhs.mo_DataCStr; return *this;
@ -193,6 +203,16 @@ namespace ZNsMain
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) );
cout<<"# after VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) )"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
return 0;
}/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/

View File

@ -151,6 +151,16 @@ namespace ZNsMain
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis2.CopyThis(VO_ZCLinkStrLis1);
cout<<"# after VO_ZCLinkStrLis2.CopyThis(VO_ZCLinkStrLis1)"<<endl;
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
cout<<"***********************************************"<<endl;
return 0;
}/*
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/