commit 2025-10-13 12:33 edit a bit ZCppMain/ZtCObjList.H

This commit is contained in:
2025-10-13 22:33:17 +09:00
parent 6cc8cff669
commit b1958e065a
2 changed files with 156 additions and 191 deletions

View File

@ -830,10 +830,10 @@ namespace ZNsMain
typedef const TypeLink TypeLinkC ; typedef const TypeLink TypeLinkC ;
typedef const TypeNode TypeNodeC ; // ZCNodePoint::GetNode() const 의 반환형. typedef const TypeNode TypeNodeC ; // ZCNodePoint::GetNode() const 의 반환형.
typedef const IterEasy IterEasyC ;
typedef const ZCLink ZCLinkC ; typedef const ZCLink ZCLinkC ;
typedef const ZCLinkOpt ZCLinkOptC ; typedef const ZCLinkOpt ZCLinkOptC ;
typedef const ZCDataOpt ZCDataOptC ; typedef const ZCDataOpt ZCDataOptC ;
typedef const IterEasy IterEasyC ;
typedef ZCNodePointC iteratorC ; typedef ZCNodePointC iteratorC ;
@ -2588,43 +2588,37 @@ namespace ZNsMain
ZCFreeHeap& GetCFreeHeap() const{return mo_FreeObjt;} ZCFreeHeap& GetCFreeHeap() const{return mo_FreeObjt;}
TypeData& GetHeadData(){return mp_HeadLink->mo_DataObjt;} TypeData & GetHeadData() {return mp_HeadLink->mo_DataObjt;}
TypeData& GetTailData(){return mp_TailLink->mo_DataObjt;} TypeData & GetTailData() {return mp_TailLink->mo_DataObjt;}
const TypeData& GetHeadData() const{return mp_HeadLink->mo_DataObjt;} TypeDataC& GetHeadData() const{return mp_HeadLink->mo_DataObjt;}
const TypeData& GetTailData() const{return mp_TailLink->mo_DataObjt;} TypeDataC& GetTailData() const{return mp_TailLink->mo_DataObjt;}
operator TypeData&() { return AddTail() ; } operator TypeData&() { return AddTail() ; }
ZCDataOpt GetHeadDataOpt() ZCDataOpt GetHeadDataOpt()
{ { if(mp_HeadLink==0) return ZCDataOpt(0);
if(mp_HeadLink==0) return ZCDataOpt(0);
return ZCDataOpt(mp_HeadLink->mo_DataObjt); return ZCDataOpt(mp_HeadLink->mo_DataObjt);
} }
ZCDataOpt GetTailDataOpt() ZCDataOpt GetTailDataOpt()
{ { if(mp_TailLink==0) return ZCDataOpt(0);
if(mp_TailLink==0) return ZCDataOpt(0);
return ZCDataOpt(mp_TailLink->mo_DataObjt); return ZCDataOpt(mp_TailLink->mo_DataObjt);
}/* }
ZCDataOpt GetTailDataOpt()*/
ZCDataOptC GetHeadDataOpt() const
const ZCDataOpt GetHeadDataOpt() const
{ {
if(mp_HeadLink==0) return ZCDataOpt(0); if(mp_HeadLink==0) return ZCDataOpt(0);
return ZCDataOpt(mp_HeadLink->mo_DataObjt); return ZCDataOpt(mp_HeadLink->mo_DataObjt);
} }
const ZCDataOpt GetTailDataOpt() const ZCDataOptC GetTailDataOpt() const
{ {
if(mp_TailLink==0) return ZCDataOpt(0); if(mp_TailLink==0) return ZCDataOpt(0);
return ZCDataOpt(mp_TailLink->mo_DataObjt); return ZCDataOpt(mp_TailLink->mo_DataObjt);
}/* }/*
const ZCDataOpt GetTailDataOpt()*/ ZCDataOptC GetTailDataOpt()*/
@ -2652,11 +2646,11 @@ namespace ZNsMain
void pop_back (){DeleteTail();} void pop_back (){DeleteTail();}
TypeData& front(){return GetHeadData();} TypeData & front() {return GetHeadData();}
TypeData& back (){return GetTailData();} TypeData & back () {return GetTailData();}
const TypeData& front() const{return GetHeadData();} TypeDataC& front() const{return GetHeadData();}
const TypeData& back () const{return GetTailData();} TypeDataC& back () const{return GetTailData();}
template<typename TFunctor> void IterElement(TFunctor AO_Functor) template<typename TFunctor> void IterElement(TFunctor AO_Functor)
@ -2942,150 +2936,121 @@ namespace ZNsMain
ZCLink* GetHeadLinkPtr(){return mp_HeadLink;} ZCLink * GetHeadLinkPtr() {return mp_HeadLink;}
ZCLink* GetTailLinkPtr(){return mp_TailLink;} ZCLink * GetTailLinkPtr() {return mp_TailLink;}
const ZCLink* GetHeadLinkPtr() const{return mp_HeadLink;} ZCLinkC* GetHeadLinkPtr() const{return mp_HeadLink;}
const ZCLink* GetTailLinkPtr() const{return mp_TailLink;} ZCLinkC* GetTailLinkPtr() const{return mp_TailLink;}
ZCLink* GetLinkPtr(TypeSize AI_Index) {return mp_HeadLink->GetNextPrevPtr(AI_Index-1);} ZCLink * GetLinkPtr(TypeSize AI_Index) {return mp_HeadLink->GetNextPrevPtr(AI_Index-1);}
const ZCLink* GetLinkPtr(TypeSize AI_Index) const{return mp_HeadLink->GetNextPrevPtr(AI_Index-1);} ZCLinkC* GetLinkPtr(TypeSize AI_Index) const{return mp_HeadLink->GetNextPrevPtr(AI_Index-1);}
ZCLink& GetHeadLink(TypeSize AI_Distance){return (*mp_HeadLink)+AI_Distance;} ZCLink & GetHeadLink(TypeSize AI_Distance) {return (*mp_HeadLink)+AI_Distance;}
ZCLink& GetTailLink(TypeSize AI_Distance){return (*mp_TailLink)-AI_Distance;} ZCLink & GetTailLink(TypeSize AI_Distance) {return (*mp_TailLink)-AI_Distance;}
const ZCLink& GetHeadLink(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;} ZCLinkC& GetHeadLink(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;}
const ZCLink& GetTailLink(TypeSize AI_Distance) const{return (*mp_TailLink)-AI_Distance;} ZCLinkC& GetTailLink(TypeSize AI_Distance) const{return (*mp_TailLink)-AI_Distance;}
ZCLink& GetNode(TypeSize AI_Index) {return (*mp_HeadLink)+(AI_Index-1);} ZCLink & GetNode(TypeSize AI_Index) {return (*mp_HeadLink)+(AI_Index-1);}
const ZCLink& GetNode(TypeSize AI_Index) const{return (*mp_HeadLink)+(AI_Index-1);} ZCLinkC& GetNode(TypeSize AI_Index) const{return (*mp_HeadLink)+(AI_Index-1);}
ZCLink* HeadPtr(){return mp_HeadLink;} ZCLink * HeadPtr() {return mp_HeadLink;}
ZCLink* TailPtr(){return mp_TailLink;} ZCLink * TailPtr() {return mp_TailLink;}
ZCLink* HeadPtr(TypeSize AI_Distance){return &((*mp_HeadLink)+AI_Distance);} ZCLinkC* HeadPtr() const{return mp_HeadLink;}
ZCLink* TailPtr(TypeSize AI_Distance){return &((*mp_TailLink)-AI_Distance);} ZCLinkC* TailPtr() const{return mp_TailLink;}
const ZCLink* HeadPtr() const{return mp_HeadLink;} ZCLink * HeadPtr(TypeSize AI_Distance){return &((*mp_HeadLink)+AI_Distance);}
const ZCLink* TailPtr() const{return mp_TailLink;} ZCLink * TailPtr(TypeSize AI_Distance){return &((*mp_TailLink)-AI_Distance);}
const ZCLink* HeadPtr(TypeSize AI_Distance) const{return &((*mp_HeadLink)+AI_Distance);} ZCLinkC* HeadPtr(TypeSize AI_Distance) const{return &((*mp_HeadLink)+AI_Distance);}
const ZCLink* TailPtr(TypeSize AI_Distance) const{return &((*mp_TailLink)-AI_Distance);} ZCLinkC* TailPtr(TypeSize AI_Distance) const{return &((*mp_TailLink)-AI_Distance);}
ZCLink& HeadRef(){return *mp_HeadLink;} ZCLink & HeadRef() {return *mp_HeadLink;}
ZCLink& TailRef(){return *mp_TailLink;} ZCLink & TailRef() {return *mp_TailLink;}
ZCLink& HeadRef(TypeSize AI_Distance){return (*mp_HeadLink)+AI_Distance;} ZCLinkC& HeadRef() const{return *mp_HeadLink;}
ZCLink& TailRef(TypeSize AI_Distance){return (*mp_TailLink)-AI_Distance;} ZCLinkC& TailRef() const{return *mp_TailLink;}
const ZCLink& HeadRef() const{return *mp_HeadLink;} ZCLink & HeadRef(TypeSize AI_Distance) {return (*mp_HeadLink)+AI_Distance;}
const ZCLink& TailRef() const{return *mp_TailLink;} ZCLink & TailRef(TypeSize AI_Distance) {return (*mp_TailLink)-AI_Distance;}
const ZCLink& HeadRef(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;} ZCLinkC& HeadRef(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;}
const ZCLink& TailRef(TypeSize AI_Distance) const{return (*mp_TailLink)-AI_Distance;} ZCLinkC& TailRef(TypeSize AI_Distance) const{return (*mp_TailLink)-AI_Distance;}
ZCDataOpt GetDataOpt(TypeSize AI_Index) // 1부터 시작. ZCDataOpt GetDataOpt(TypeSize AI_Index) // 1부터 시작.
{ { return DataOpt(AI_Index-1); }
return DataOpt(AI_Index-1); ZCDataOptC GetDataOpt(TypeSize AI_Index) const
}/* { return DataOpt(AI_Index-1); }
ZCDataOpt GetDataOpt(TypeSize AI_Index)*/
const ZCDataOpt GetDataOpt(TypeSize AI_Index) const
{
return DataOpt(AI_Index-1);
}/*
const ZCDataOpt GetDataOpt(TypeSize AI_Index) const*/
ZCDataOpt DataOpt(TypeSize AI_Index) // 1부터 ZCDataOpt DataOpt(TypeSize AI_Index) // 1부터
{ { if(mp_HeadLink==0){return ZCDataOpt(0);}
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Index-1)); return ZCDataOpt(**HeadPtr(AI_Index-1));
}/* }
ZCDataOpt DataOpt(TypeSize AI_Index)*/ ZCDataOptC DataOpt(TypeSize AI_Index) const
{ if(mp_HeadLink==0){return ZCDataOpt(0) ;}
const ZCDataOpt DataOpt(TypeSize AI_Index) const
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Index-1)); return ZCDataOpt(**HeadPtr(AI_Index-1));
}/* }
const ZCDataOpt DataOpt(TypeSize AI_Index) const*/
ZCDataOpt HeadOptD(TypeSize AI_Distance=0) ZCDataOpt HeadOptD(TypeSize AI_Distance=0)
{ { if(mp_HeadLink==0){return ZCDataOpt(0);}
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Distance)); return ZCDataOpt(**HeadPtr(AI_Distance));
}/* }
ZCDataOpt HeadOptD(TypeSize AI_Distance=0)*/
ZCDataOpt TailOptD(TypeSize AI_Distance=0) ZCDataOpt TailOptD(TypeSize AI_Distance=0)
{ { if(mp_HeadLink==0){return ZCDataOpt(0);}
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**TailPtr(AI_Distance)); return ZCDataOpt(**TailPtr(AI_Distance));
}/* }
ZCDataOpt TailOptD(TypeSize AI_Distance=0)*/
const ZCDataOpt HeadOptD(TypeSize AI_Distance=0) const
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
ZCDataOptC HeadOptD(TypeSize AI_Distance=0) const
{ if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Distance)); return ZCDataOpt(**HeadPtr(AI_Distance));
}/* }
const ZCDataOpt HeadOptD(TypeSize AI_Distance=0) const*/ ZCDataOptC TailOptD(TypeSize AI_Distance=0) const
{ if(mp_HeadLink==0){return ZCDataOpt(0);}
const ZCDataOpt TailOptD(TypeSize AI_Distance=0) const
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**TailPtr(AI_Distance)); return ZCDataOpt(**TailPtr(AI_Distance));
}/* }
const ZCDataOpt TailOptD(TypeSize AI_Distance=0) const*/
ZCLinkOpt HeadOpt(){return ZCLinkOpt(mp_HeadLink);} ZCLinkOpt HeadOpt() {return ZCLinkOpt(mp_HeadLink);}
ZCLinkOpt TailOpt(){return ZCLinkOpt(mp_TailLink);} ZCLinkOpt TailOpt() {return ZCLinkOpt(mp_TailLink);}
ZCLinkOptC HeadOpt() const{return ZCLinkOpt(mp_HeadLink);}
ZCLinkOptC TailOpt() const{return ZCLinkOpt(mp_TailLink);}
ZCLinkOpt HeadOpt(TypeSize AI_Distance) ZCLinkOpt HeadOpt(TypeSize AI_Distance)
{if(mp_HeadLink==0){return ZCLinkOpt(0);} return ZCLinkOpt((*mp_HeadLink)+AI_Distance);} {if(mp_HeadLink==0){return ZCLinkOpt(0);} return ZCLinkOpt((*mp_HeadLink)+AI_Distance);}
ZCLinkOpt TailOpt(TypeSize AI_Distance) ZCLinkOpt TailOpt(TypeSize AI_Distance)
{if(mp_TailLink==0){return ZCLinkOpt(0);} return ZCLinkOpt((*mp_TailLink)-AI_Distance);} {if(mp_TailLink==0){return ZCLinkOpt(0);} return ZCLinkOpt((*mp_TailLink)-AI_Distance);}
const ZCLinkOpt HeadOpt() const{return ZCLinkOpt(mp_HeadLink);} ZCLinkOptC HeadOpt(TypeSize AI_Distance) const
const ZCLinkOpt TailOpt() const{return ZCLinkOpt(mp_TailLink);}
const ZCLinkOpt HeadOpt(TypeSize AI_Distance) const
{if(mp_HeadLink==0){return ZCLinkOpt(0);} return ZCLinkOpt((*mp_HeadLink)+AI_Distance);} {if(mp_HeadLink==0){return ZCLinkOpt(0);} return ZCLinkOpt((*mp_HeadLink)+AI_Distance);}
const ZCLinkOpt TailOpt(TypeSize AI_Distance) const ZCLinkOptC TailOpt(TypeSize AI_Distance) const
{if(mp_TailLink==0){return ZCLinkOpt(0);} return ZCLinkOpt((*mp_TailLink)-AI_Distance);} {if(mp_TailLink==0){return ZCLinkOpt(0);} return ZCLinkOpt((*mp_TailLink)-AI_Distance);}
ZCLink& _1(){return HeadRef();} ZCLink & _1() {return HeadRef();}
ZCLink& _0(){return TailRef();} ZCLink & _0() {return TailRef();}
ZCLink& _1(TypeSize AI_Distance){return HeadRef(AI_Distance);} ZCLinkC& _1() const{return HeadRef();}
ZCLink& _0(TypeSize AI_Distance){return TailRef(AI_Distance);} ZCLinkC& _0() const{return TailRef();}
const ZCLink& _1() const{return HeadRef();} ZCLink & _1(TypeSize AI_Distance) {return HeadRef(AI_Distance);}
const ZCLink& _0() const{return TailRef();} ZCLink & _0(TypeSize AI_Distance) {return TailRef(AI_Distance);}
const ZCLink& _1(TypeSize AI_Distance) const{return HeadRef(AI_Distance);} ZCLinkC& _1(TypeSize AI_Distance) const{return HeadRef(AI_Distance);}
const ZCLink& _0(TypeSize AI_Distance) const{return TailRef(AI_Distance);} ZCLinkC& _0(TypeSize AI_Distance) const{return TailRef(AI_Distance);}
/***/ ZCLinkOpt GetLinkOpt(TypeSize AI_Index) ZCLinkOpt GetLinkOpt(TypeSize AI_Index)
{ if(mp_HeadLink==0) return ZCLinkOpt(0); return ZCLinkOpt(GetLinkPtr(AI_Index)); } { if(mp_HeadLink==0) return ZCLinkOpt(0); return ZCLinkOpt(GetLinkPtr(AI_Index)); }
const ZCLinkOpt GetLinkOpt(TypeSize AI_Index) const ZCLinkOptC GetLinkOpt(TypeSize AI_Index) const
{ if(mp_HeadLink==0) return ZCLinkOpt(0); return ZCLinkOpt(GetLinkPtr(AI_Index)); } { if(mp_HeadLink==0) return ZCLinkOpt(0); return ZCLinkOpt(GetLinkPtr(AI_Index)); }

View File

@ -882,17 +882,17 @@ namespace ZNsMain
}/* }/*
const TType& GetData() const*/ const TType& GetData() const*/
TType& GetData(TTypSize AL_FarNum) // must AL_FarNum >= 0 TType& GetData(TypeSize AL_FarNum) // must AL_FarNum >= 0
{ {
return GetNextPtr(AL_FarNum)->mo_DataObjt; return GetNextPtr(AL_FarNum)->mo_DataObjt;
}/* }/*
TType& GetData(TTypSize AL_FarNum)*/ TType& GetData(TypeSize AL_FarNum)*/
const TType& GetData(TTypSize AL_FarNum) const const TType& GetData(TypeSize AL_FarNum) const
{ {
return GetNextPtr(AL_FarNum)->mo_DataObjt; return GetNextPtr(AL_FarNum)->mo_DataObjt;
}/* }/*
const TType& GetData(TTypSize AL_FarNum) const*/ const TType& GetData(TypeSize AL_FarNum) const*/
TType& operator* (){return mo_DataObjt;} TType& operator* (){return mo_DataObjt;}
@ -902,9 +902,9 @@ namespace ZNsMain
const TType& operator()() const{return mo_DataObjt;} const TType& operator()() const{return mo_DataObjt;}
ZCLink* GetNextPtr(TTypSize AL_FarNum) // must AL_FarNum > 0 ZCLink* GetNextPtr(TypeSize AL_FarNum) // must AL_FarNum > 0
{ {
// 이 멤버 함수는 TTypSize 가 용랑이 큰 object 라 할지라도 // 이 멤버 함수는 TypeSize 가 용랑이 큰 object 라 할지라도
// 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다. // 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다.
ZCLink* VP_TmpLink=this; ZCLink* VP_TmpLink=this;
@ -915,13 +915,13 @@ namespace ZNsMain
return VP_TmpLink; return VP_TmpLink;
}/* }/*
ZCLink* GetNextPtr(TTypSize AL_FarNum)*/ ZCLink* GetNextPtr(TypeSize AL_FarNum)*/
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TTypSize AL_FarNum) const const ZCLink* const GetNextPtr(TypeSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TypeSize AL_FarNum) const
{ {
// TTypSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로 // TypeSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
// TTypSize 을 참조로 받으면 안된다. // TypeSize 을 참조로 받으면 안된다.
ZCLink* VP_TmpLink = const_cast<ZCLink*>(this); ZCLink* VP_TmpLink = const_cast<ZCLink*>(this);
@ -935,7 +935,7 @@ namespace ZNsMain
return VP_TmpLink; return VP_TmpLink;
}/* }/*
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const*/ const ZCLink* const GetNextPtr(TypeSize AL_FarNum) const*/
inline ZCLink* GetNextPtr() inline ZCLink* GetNextPtr()
@ -960,11 +960,11 @@ namespace ZNsMain
{ {
ZCLink* VP_CLinkLoop=this; ZCLink* VP_CLinkLoop=this;
__for0(TTypSize, i, AL_Offset) __for0(TypeSize, i, AL_Offset)
{ {
VP_CLinkLoop = VP_CLinkLoop->mp_NextLink; VP_CLinkLoop = VP_CLinkLoop->mp_NextLink;
}/* }/*
__for0(TTypSize, i, AL_Offset)*/ __for0(TypeSize, i, AL_Offset)*/
return *this; return *this;
}/* }/*
@ -1250,7 +1250,7 @@ namespace ZNsMain
/*************************************************************/ /*************************************************************/
protected: protected:
TTypSize ml_LinkSize ; TypeSize ml_LinkSize ;
ZCLink* mp_HeadLink ; ZCLink* mp_HeadLink ;
ZCLink* mp_TailLink ; mutable ZCLink* mp_TailLink ; mutable
ZCFreeHeap mo_FreeObjt ; ZCFreeHeap mo_FreeObjt ;
@ -1262,7 +1262,7 @@ namespace ZNsMain
ZtCSimList& CopyLink /*######################################*/ ZtCSimList& CopyLink /*######################################*/
( (
const ZCLink* const AP_CopyLink , const ZCLink* const AP_CopyLink ,
TTypSize AL_FarNum , TypeSize AL_FarNum ,
ZtCSimList& ARR_Rhs ZtCSimList& ARR_Rhs
) const ) const
/*###########################################################*/ /*###########################################################*/
@ -1295,7 +1295,7 @@ namespace ZNsMain
ZtCSimList& CopyLink ########################################## ZtCSimList& CopyLink ##########################################
( (
const ZCLink* const AP_CopyLink , const ZCLink* const AP_CopyLink ,
TTypSize AL_FarNum , TypeSize AL_FarNum ,
ZtCSimList& ARR_Rhs ZtCSimList& ARR_Rhs
) const ) const
#############################################################*/ #############################################################*/
@ -1338,7 +1338,7 @@ namespace ZNsMain
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/ ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos) ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)
{ {
if(AP_CutLink==mp_HeadLink) if(AP_CutLink==mp_HeadLink)
{ {
@ -1369,14 +1369,14 @@ namespace ZNsMain
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, TypeSize AL_CutPos)*/
ZtCSimList& CutLink /*###############################*/ ZtCSimList& CutLink /*###############################*/
( (
ZCLink* AP_CutHeadPrev, ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead , TTypSize AL_CutHeadPos, ZCLink* AP_CutHead , TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail , TTypSize AL_CutTailPos, ZCLink* AP_CutTail , TypeSize AL_CutTailPos,
ZtCSimList& ARR_StoreList ZtCSimList& ARR_StoreList
) )
/*###################################################*/ /*###################################################*/
@ -1423,8 +1423,8 @@ namespace ZNsMain
{ {
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app); std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl; fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,"<<std::endl; fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,"<<std::endl;
fileout<<" ZCLink* AP_CutTail, TTypSize AL_CutTailPos" <<std::endl; fileout<<" ZCLink* AP_CutTail, TypeSize AL_CutTailPos" <<std::endl;
fileout<<" /****************/ )" <<std::endl; fileout<<" /****************/ )" <<std::endl;
fileout<<"Static Object ARR_StoreList is not empty"<<std::endl; fileout<<"Static Object ARR_StoreList is not empty"<<std::endl;
fileout.close(); fileout.close();
@ -1443,14 +1443,14 @@ namespace ZNsMain
ZtCSimList& CutLink /////////////////////////////// ZtCSimList& CutLink ///////////////////////////////
( (
ZCLink* AP_CutHeadPrev, ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos, ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos, ZCLink* AP_CutTail, TypeSize AL_CutTailPos,
ZtCSimList& ARR_StoreList ZtCSimList& ARR_StoreList
) )
/////////////////////////////////////////////////*/ /////////////////////////////////////////////////*/
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
{ {
if(AL_DefaultSize<=0) return ARR_StoreList; if(AL_DefaultSize<=0) return ARR_StoreList;
@ -1467,7 +1467,7 @@ namespace ZNsMain
return ARR_StoreList; return ARR_StoreList;
}/* }/*
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
protected: */ protected: */
@ -1530,17 +1530,17 @@ namespace ZNsMain
ZtCSimList& operator()(TypeArg AR_Type)*/ ZtCSimList& operator()(TypeArg AR_Type)*/
TType& operator[](TTypSize AL_Index) TType& operator[](TypeSize AL_Index)
{ {
return GetLinkPtr(AL_Index)->mo_DataObjt; return GetLinkPtr(AL_Index)->mo_DataObjt;
}/* }/*
TType& operator[](TTypSize AL_Index)*/ TType& operator[](TypeSize AL_Index)*/
const TType& operator[](TTypSize AL_Index) const const TType& operator[](TypeSize AL_Index) const
{ {
return GetLinkPtr(AL_Index)->mo_DataObjt; return GetLinkPtr(AL_Index)->mo_DataObjt;
}/* }/*
const TType& operator[](TTypSize AL_Index) const*/ const TType& operator[](TypeSize AL_Index) const*/
operator TType&(){return AddTailDef()->mo_DataObjt;} operator TType&(){return AddTailDef()->mo_DataObjt;}
@ -1654,7 +1654,7 @@ namespace ZNsMain
ZCLink* AddTailDef()*/ ZCLink* AddTailDef()*/
void AddHeadDef(TTypSize AL_DefaultSize) void AddHeadDef(TypeSize AL_DefaultSize)
{ {
if(AL_DefaultSize<1) return; if(AL_DefaultSize<1) return;
@ -1664,9 +1664,9 @@ namespace ZNsMain
); );
////////////////////////////////// //////////////////////////////////
}/* }/*
void AddHeadDef(TTypSize AL_DefaultSize)*/ void AddHeadDef(TypeSize AL_DefaultSize)*/
void AddTailDef(TTypSize AL_DefaultSize) void AddTailDef(TypeSize AL_DefaultSize)
{ {
if(AL_DefaultSize<1) return; if(AL_DefaultSize<1) return;
@ -1676,7 +1676,7 @@ namespace ZNsMain
); );
////////////////////////////////// //////////////////////////////////
}/* }/*
void AddTailDef(TTypSize AL_DefaultSize)*/ void AddTailDef(TypeSize AL_DefaultSize)*/
ZCLink* GetHeadLinkPtr (){return mp_HeadLink;} ZCLink* GetHeadLinkPtr (){return mp_HeadLink;}
@ -1712,8 +1712,8 @@ namespace ZNsMain
TypeData & GetTailData() { return mp_TailLink->mo_DataObjt ; } TypeData & GetTailData() { return mp_TailLink->mo_DataObjt ; }
TypeDataC& GetTailData() const{ return mp_TailLink->mo_DataObjt ; } TypeDataC& GetTailData() const{ return mp_TailLink->mo_DataObjt ; }
TypeData & GetData(TTypSize AL_Index) { return GetLinkPtr(AL_Index)->mo_DataObjt; } TypeData & GetData(TypeSize AL_Index) { return GetLinkPtr(AL_Index)->mo_DataObjt; }
TypeDataC& GetData(TTypSize AL_Index) const{ return GetLinkPtr(AL_Index)->mo_DataObjt; } TypeDataC& GetData(TypeSize AL_Index) const{ return GetLinkPtr(AL_Index)->mo_DataObjt; }
void JoinHead(ZCLink* AP_Link) void JoinHead(ZCLink* AP_Link)
@ -1829,7 +1829,7 @@ namespace ZNsMain
}/* }/*
void DeleteHead()*/ void DeleteHead()*/
void DeleteHead(TTypSize AL_DelSize) void DeleteHead(TypeSize AL_DelSize)
{ {
// AL_DelSize 개의 링크를 앞 부분에서 삭제 // AL_DelSize 개의 링크를 앞 부분에서 삭제
@ -1864,7 +1864,7 @@ namespace ZNsMain
ZCLink::MakeRing(mp_HeadLink, mp_TailLink); ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
}/* }/*
void DeleteHead(TTypSize AL_DelSize)*/ void DeleteHead(TypeSize AL_DelSize)*/
void DeleteTail() void DeleteTail()
{ {
@ -1899,18 +1899,18 @@ namespace ZNsMain
}/* }/*
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/ void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos) void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)
{ {
GetCFreeHeap().RecvFreeIn GetCFreeHeap().RecvFreeIn
( CutLink(AP_PrevLink, AP_CutLink, AL_CutPos) ); ( CutLink(AP_PrevLink, AP_CutLink, AL_CutPos) );
}/* }/*
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)*/ void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)*/
void Delete /*###################################*/ void Delete /*###################################*/
( (
ZCLink* AP_CutHeadPrev, ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos, ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos ZCLink* AP_CutTail, TypeSize AL_CutTailPos
) )
/*###############################################*/ /*###############################################*/
{ {
@ -1927,8 +1927,8 @@ namespace ZNsMain
void Delete /////////////////////////////////////// void Delete ///////////////////////////////////////
( (
ZCLink* AP_CutHeadPrev, ZCLink* AP_CutHeadPrev,
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos, ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
ZCLink* AP_CutTail, TTypSize AL_CutTailPos ZCLink* AP_CutTail, TypeSize AL_CutTailPos
) )
/////////////////////////////////////////////////*/ /////////////////////////////////////////////////*/
@ -1957,7 +1957,7 @@ namespace ZNsMain
void clear(){DeleteAll();} void clear(){DeleteAll();}
TTypSize Find(const ZCLink* AP_pSearchLink, TTypSize AL_FirstFindIndex=1) const TypeSize Find(const ZCLink* AP_pSearchLink, TypeSize AL_FirstFindIndex=1) const
{ {
const bool CB_DoStop = ////////////////////// const bool CB_DoStop = //////////////////////
( (
@ -1968,7 +1968,7 @@ namespace ZNsMain
if(CB_DoStop) {return 0;} /////////////////// if(CB_DoStop) {return 0;} ///////////////////
TTypSize VL_FindIndex = AL_FirstFindIndex ; TypeSize VL_FindIndex = AL_FirstFindIndex ;
ZCLink* VP_TempLink = const_cast ZCLink* VP_TempLink = const_cast
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex)); <ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
@ -1985,9 +1985,9 @@ namespace ZNsMain
} }
while(true); while(true);
}/* }/*
TTypSize Find(ZCLink* AP_pSearchLink, TTypSize AL_FirstFindIndex=1) const*/ TypeSize Find(ZCLink* AP_pSearchLink, TypeSize AL_FirstFindIndex=1) const*/
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)
{ {
const bool CB_DoStop = ////////////////////// const bool CB_DoStop = //////////////////////
( (
@ -1998,7 +1998,7 @@ namespace ZNsMain
if(CB_DoStop) return 0; ///////////////////// if(CB_DoStop) return 0; /////////////////////
TTypSize VL_FindIndex = AL_FirstFindIndex ; TypeSize VL_FindIndex = AL_FirstFindIndex ;
ZCLink* VP_TempLink = const_cast ZCLink* VP_TempLink = const_cast
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex)); <ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
@ -2015,7 +2015,7 @@ namespace ZNsMain
} }
while(true); while(true);
}/* }/*
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1)*/ TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)*/
/*//////////////////////////////////////////////////////////////////////////////////////// /*////////////////////////////////////////////////////////////////////////////////////////
@ -2027,25 +2027,25 @@ namespace ZNsMain
////////////////////////////////////////////////////////////////////////////////////////*/ ////////////////////////////////////////////////////////////////////////////////////////*/
TTypSize FindData(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) const TypeSize FindData(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1) const
{ {
return Find(AR_TypeArg, AL_FirstFindIndex); return Find(AR_TypeArg, AL_FirstFindIndex);
}/* }/*
TTypSize FindData(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) const*/ TypeSize FindData(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1) const*/
ZCLink* GetLinkPtr(TTypSize AL_Index) ZCLink* GetLinkPtr(TypeSize AL_Index)
{ {
return mp_HeadLink->GetNextPtr(AL_Index-1); return mp_HeadLink->GetNextPtr(AL_Index-1);
}/* }/*
ZCLink* GetLinkPtr(TTypSize AL_Index)*/ ZCLink* GetLinkPtr(TypeSize AL_Index)*/
const ZCLink* GetLinkPtr(TTypSize AL_Index) const const ZCLink* GetLinkPtr(TypeSize AL_Index) const
{ {
return mp_HeadLink->GetNextPtr(AL_Index-1); return mp_HeadLink->GetNextPtr(AL_Index-1);
}/* }/*
const ZCLink* GetLinkPtr(TTypSize AL_Index) const*/ const ZCLink* GetLinkPtr(TypeSize AL_Index) const*/
ZCFreeHeap& GetCFreeHeap() const ZCFreeHeap& GetCFreeHeap() const
@ -2055,12 +2055,12 @@ namespace ZNsMain
ZCFreeHeap& GetCFreeHeap() const*/ ZCFreeHeap& GetCFreeHeap() const*/
inline TTypSize GetSize() const inline TypeSize GetSize() const
{ return ml_LinkSize; } { return ml_LinkSize; }
inline TTypSize size () const inline TypeSize size () const
{ return ml_LinkSize; } { return ml_LinkSize; }
inline TTypSize capacity() const inline TypeSize capacity() const
{ return size()+mo_FreeObjt.size(); } { return size()+mo_FreeObjt.size(); }
inline TypeSize GetFreeSize() const inline TypeSize GetFreeSize() const
@ -2342,13 +2342,13 @@ namespace ZNsMain
{ ++ARR_iterator ; } { ++ARR_iterator ; }
TypeData& GetDataInIter(ZCLink* AP_CLink) TypeData & GetDataInIter(ZCLink* AP_CLink)
{ return **AP_CLink ; } { return **AP_CLink ; }
TypeData& GetDataInIter(IterEasyID APPI_IterEasyID) TypeData & GetDataInIter(IterEasyID APPI_IterEasyID)
{ return GetDataInIter((ZCLink*)APPI_IterEasyID) ; } { return GetDataInIter((ZCLink*)APPI_IterEasyID) ; }
TypeData& GetDataInIter(iterator & ARR_iterator) TypeData & GetDataInIter(iterator & ARR_iterator)
{ return *ARR_iterator ; } { return *ARR_iterator ; }
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
TypeDataC& GetDataInIter(const ZCLink* AP_CLink) const TypeDataC& GetDataInIter(const ZCLink* AP_CLink) const
@ -2357,7 +2357,7 @@ namespace ZNsMain
TypeDataC& GetDataInIter(IterEasyIDc APPI_IterEasyID) const TypeDataC& GetDataInIter(IterEasyIDc APPI_IterEasyID) const
{ return GetDataInIter((const ZCLink*)APPI_IterEasyID) ; } { return GetDataInIter((const ZCLink*)APPI_IterEasyID) ; }
TypeData& GetDataInIter(iteratorC& ARR_iterator) const TypeDataC& GetDataInIter(iteratorC& ARR_iterator) const
{ return *ARR_iterator ; } { return *ARR_iterator ; }