commit 2025-10-06 11:12 add Argument ZCLink* => ZCLink& in SendOutAfter() and SendOutBefore() : ZCppMain/ZtCObjList.H

This commit is contained in:
2025-10-06 11:12:32 +09:00
parent afe609c463
commit 2272742d8f
2 changed files with 39 additions and 124 deletions

View File

@ -2171,38 +2171,28 @@ namespace ZNsMain
###############################################################################*/
void SendOutAfter(ZCLink* AP_CutLink, ZtCObjList& rhs, ZCLink* AP_StdLink)
void SendOutAfter (ZCLink& AR_CutLink, ZtCObjList& rhs, ZCLink& AR_StdLink)
{
// AP_CutLink 를 잘라서 rhs 의 AP_StdLink 뒤에 연결한다.
// AP_StdLink==0 이면, rhs 의 앞에 삽입한다.
// AR_CutLink 를 잘라서 rhs 의 AR_StdLink 뒤에 연결한다.
CutLink(AP_CutLink); rhs.JoinAfter(AP_CutLink, AP_StdLink);
CutLink(&AR_CutLink); rhs.JoinAfter(&AR_CutLink, &AR_StdLink);
}/*
void SendOutAfter(ZCLink* AP_CutLink, ZtCObjList& rhs, ZCLink* AP_StdLink)*/
void SendOutAfter (ZCLink& AR_CutLink, ZtCObjList& rhs, ZCLink& AR_StdLink)*/
void SendOutBefore(ZCLink* AP_CutLink, ZtCObjList& rhs, ZCLink* AP_StdLink)
void SendOutBefore(ZCLink& AR_CutLink, ZtCObjList& rhs, ZCLink& AR_StdLink)
{
// AP_CutLink 를 잘라서 rhs 의 AP_StdLink 앞에 연결한다.
// AP_StdLink==0 이면, rhs 의 뒤에 삽입한다.
// AR_CutLink 를 잘라서 rhs 의 AR_StdLink 앞에 연결한다.
CutLink(AP_CutLink); rhs.JoinBefore(AP_CutLink, AP_StdLink);
CutLink(&AR_CutLink); rhs.JoinBefore(&AR_CutLink, &AR_StdLink);
}/*
void SendOutBefore(ZCLink* AP_CutLink, ZtCObjList& rhs, ZCLink* AP_StdLink)*/
void SendOutBefore(ZCLink& AR_CutLink, ZtCObjList& rhs, ZCLink& AR_StdLink)*/
void SendOutHead(ZCLink* AP_CutLink, ZtCObjList& rhs)
{
// AP_CutLink 를 잘라서 rhs 의 앞에 연결한다.
void SendOutHead(ZCLink& AR_CutLink, ZtCObjList& rhs)
{ CutLink(&AR_CutLink); rhs.JoinAfter (&AR_CutLink, 0); }
SendOutAfter (AP_CutLink, rhs, 0);
}
void SendOutTail(ZCLink* AP_CutLink, ZtCObjList& rhs)
{
// AP_CutLink 를 잘라서 rhs 의 뒤에 연결한다.
SendOutBefore(AP_CutLink, rhs, 0);
}/*
void SendOutTail(ZCLink* AP_CutLink, ZtCObjList& rhs)*/
void SendOutTail(ZCLink& AR_CutLink, ZtCObjList& rhs)
{ CutLink(&AR_CutLink); rhs.JoinBefore(&AR_CutLink, 0); }
operator Type&()
@ -2214,43 +2204,12 @@ namespace ZNsMain
Type& GetData(TypeSize AI_Index)
{
#ifdef _DEBUG
if(AI_Index<1 || AI_Index>ml_LinkSize)
{
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
fileout<<"Error In 'Type& GetData(TypeSize AI_Index)' : Parameter is bad index("<<AI_Index<<")"<<std::endl;
fileout.close();
::exit(1);
}/*
if(AI_Index<1 || AI_Index>ml_LinkSize)*/
#endif //_DEBUG
return GetLinkPtr(AI_Index)->GetData();
}/*
Type& GetData(TypeSize AI_Index)*/
const Type& GetData(TypeSize AI_Index) const
{
#ifdef _DEBUG
if(AI_Index<1 || AI_Index>ml_LinkSize)
{
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
fileout<<"Error In 'const Type& GetData(TypeSize AI_Index) const' : Parameter is bad index("<<AI_Index<<")"<<std::endl;
fileout.close();
::exit(1);
}/*
if(AI_Index<1 || AI_Index>ml_LinkSize)*/
#endif //_DEBUG
return GetLinkPtr(AI_Index)->GetData();
}/*
const Type& GetData(TypeSize AI_Index) const*/
@ -2258,85 +2217,24 @@ namespace ZNsMain
Type& GetHeadData()
{
#ifdef _DEBUG
if(mp_HeadLink==0)
{
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
fileout<<"Error In 'Type& ZNsMain::ZtCObjList::GetHeadData()' : Type Instance is nothing"<<std::endl;
fileout.close();
::exit(1);
}/*
if(mp_HeadLink==0)*/
#endif //#_DEBUG
return mp_HeadLink->GetData();
}/*
Type& GetHeadData()*/
const Type& GetHeadData() const
{
#ifdef _DEBUG
if(mp_HeadLink==0)
{
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
fileout<<"Error In 'const Type& ZNsMain::ZtCObjList::GetHeadData() const' : Type Instance is nothing"<<std::endl;
fileout.close();
::exit(1);
}/*
if(mp_HeadLink==0)*/
#endif //_DEBUG
return mp_HeadLink->GetData();
}/*
const Type& GetHeadData() const*/
Type& GetTailData()
{
#ifdef _DEBUG
if(mp_HeadLink==0)
{
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
fileout<<"Error In 'Type& ZNsMain::ZtCObjList::GetTailData()' : Type Instance is nothing"<<std::endl;
fileout.close();
::exit(1);
}/*
if(mp_HeadLink==0)*/
#endif //_DEBUG
return mp_HeadLink->mp_PrevLink->GetData();
}/*
Type& GetTailData()*/
const Type& GetHeadData() const
{
return mp_HeadLink->GetData();
}/*
const Type& GetHeadData() const*/
const Type& GetTailData() const
{
#ifdef _DEBUG
if(mp_HeadLink==0)
{
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
fileout<<"Error In 'const Type& ZNsMain::ZtCObjList::GetTailData() const' : Type Instance is nothing"<<std::endl;
fileout.close();
::exit(1);
}/*
if(mp_HeadLink==0)*/
#endif //_DEBUG
return mp_HeadLink->mp_PrevLink->GetData();
}/*
const Type& GetTailData() const*/

View File

@ -81,6 +81,23 @@ namespace ZNsMain
static void ShowNode2(ZCLink2& AR_CLink, int& ARRI_CallCnt)*/
static void ShowNode1_3(ZCLink1& AR_CLink, int& ARRI_CallCnt)
{
++ARRI_CallCnt;
cout<<ARRI_CallCnt<<" * Node Curr : "<<*(AR_CLink )<<endl;
}/*
static void ShowNode1(ZCLink1& AR_CLink, int& ARRI_CallCnt)*/
static void ShowNode2_3(ZCLink2& AR_CLink, int& ARRI_CallCnt)
{
++ARRI_CallCnt;
cout<<ARRI_CallCnt<<" * Node Curr : "<<*(AR_CLink )<<endl;
}/*
static void ShowNode2(ZCLink2& AR_CLink, int& ARRI_CallCnt)*/
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
{
CStringBase VO_CStringBase ;
@ -257,7 +274,7 @@ namespace ZNsMain
VO_ListOfStr10.IterElemLink(&ShowNode1_2, ZftMCP(VI_CallCnt=0));
cout<<"# list10 2th link to list11 tail"<<endl;
VO_ListOfStr10.SendOutTail(VO_ListOfStr10.GetLinkPtr(2), VO_ListOfStr11);
VO_ListOfStr10.SendOutTail(*VO_ListOfStr10.GetLinkPtr(2), VO_ListOfStr11);
cout<<"# list10 IterElemLink ################"<<endl;
VO_ListOfStr10.IterElemLink(&ShowNode1_2, ZftMCP(VI_CallCnt=0));
@ -265,12 +282,12 @@ namespace ZNsMain
VO_ListOfStr11.IterElemLink(&ShowNode1_2, ZftMCP(VI_CallCnt=0));
cout<<"# list10 1th link to list10 head"<<endl;
VO_ListOfStr10.SendOutHead(VO_ListOfStr10.GetLinkPtr(1), VO_ListOfStr11);
VO_ListOfStr10.SendOutHead(*VO_ListOfStr10.GetLinkPtr(1), VO_ListOfStr11);
cout<<"# list10 IterElemLink ################"<<endl;
VO_ListOfStr10.IterElemLink(&ShowNode1_2, ZftMCP(VI_CallCnt=0));
VO_ListOfStr10.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
cout<<"# list11 IterElemLink ################"<<endl;
VO_ListOfStr11.IterElemLink(&ShowNode1_2, ZftMCP(VI_CallCnt=0));
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
return 0;