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

This commit is contained in:
2025-10-12 23:10:34 +09:00
parent cdca176fa9
commit fa52fe1027
2 changed files with 135 additions and 145 deletions

View File

@ -5692,6 +5692,8 @@ namespace ZNsMain
typedef const iterator iteratorC ; typedef const iterator iteratorC ;
typedef const IterEasy IterEasyC ; typedef const IterEasy IterEasyC ;
/*************************************************************************/ /*************************************************************************/
typedef const TypeThis TypeThisC ;
typedef const TypeList TypeListC ;
typedef const TypeData TypeDataC ; typedef const TypeData TypeDataC ;
typedef const ZCLink TypeLinkC ; typedef const ZCLink TypeLinkC ;
typedef const ZCLink ZCLinkC ; typedef const ZCLink ZCLinkC ;
@ -5862,8 +5864,14 @@ namespace ZNsMain
ZCLinkPoint& operator= (const ZCLinkPoint& rhs){ return *this; } ZCLinkPoint& operator= (const ZCLinkPoint& rhs){ return *this; }
/***/ TypeData& operator*() {return **mp_CurrLink;} TypeData & operator*() {return **mp_CurrLink;}
const TypeData& operator*() const{return **mp_CurrLink;} TypeDataC& operator*() const{return **mp_CurrLink;}
operator TypeLink * () {return mp_CurrLink;}
operator TypeLinkC* () const{return mp_CurrLink;}
operator TypeLink & () {return *mp_CurrLink;}
operator TypeLinkC& () const{return *mp_CurrLink;}
const ZCLinkPoint& operator++() const const ZCLinkPoint& operator++() const
@ -8025,150 +8033,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& GetLink(TypeSize AI_Index) {return (*mp_HeadLink)+(AI_Index-1);} ZCLink & GetLink(TypeSize AI_Index) {return (*mp_HeadLink)+(AI_Index-1);}
const ZCLink& GetLink(TypeSize AI_Index) const{return (*mp_HeadLink)+(AI_Index-1);} ZCLinkC& GetLink(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;}
ZCLinkC* HeadPtr() const{return mp_HeadLink;}
ZCLinkC* TailPtr() const{return mp_TailLink;}
ZCLink* HeadPtr(TypeSize AI_Distance){return &((*mp_HeadLink)+AI_Distance);} ZCLink * HeadPtr(TypeSize AI_Distance) {return &((*mp_HeadLink)+AI_Distance);}
ZCLink* TailPtr(TypeSize AI_Distance){return &((*mp_TailLink)-AI_Distance);} ZCLink * TailPtr(TypeSize AI_Distance) {return &((*mp_TailLink)-AI_Distance);}
const ZCLink* HeadPtr() const{return mp_HeadLink;} ZCLinkC* HeadPtr(TypeSize AI_Distance) const{return &((*mp_HeadLink)+AI_Distance);}
const ZCLink* TailPtr() const{return mp_TailLink;} ZCLinkC* TailPtr(TypeSize AI_Distance) const{return &((*mp_TailLink)-AI_Distance);}
const ZCLink* HeadPtr(TypeSize AI_Distance) const{return &((*mp_HeadLink)+AI_Distance);}
const ZCLink* 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;}
ZCLinkOpt HeadOpt(){return ZCLinkOpt(mp_HeadLink);} ZCLinkOpt HeadOpt() {return ZCLinkOpt(mp_HeadLink);}
ZCLinkOpt TailOpt(){return ZCLinkOpt(mp_TailLink);} ZCLinkOpt TailOpt() {return ZCLinkOpt(mp_TailLink);}
ZCLinkOpt HeadOpt(TypeSize AI_Distance) ZCLinkOptC HeadOpt() const{return ZCLinkOpt(mp_HeadLink);}
ZCLinkOptC TailOpt() const{return ZCLinkOpt(mp_TailLink);}
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);}
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 ZCDataOpt DataOpt(TypeSize AI_Index) // 1부터
{ { if(mp_HeadLink==0){return ZCDataOpt(0);}
return DataOpt(AI_Index-1); return ZCDataOpt(**HeadPtr(AI_Index-1));
}/* }
const ZCDataOpt GetDataOpt(TypeSize AI_Index) const*/ ZCDataOptC DataOpt(TypeSize AI_Index) const
{ if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Index-1));
}/*
ZCDataOptC DataOpt(TypeSize AI_Index) const*/
ZCDataOpt DataOptHead(TypeSize AI_Distance=0)
{ if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Distance));
}
ZCDataOpt DataOptTail(TypeSize AI_Distance=0)
{ if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**TailPtr(AI_Distance));
}/*
ZCDataOpt DataOptTail(TypeSize AI_Distance=0)*/
ZCDataOptC DataOptHead(TypeSize AI_Distance=0) const
{ if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Distance));
}
ZCDataOptC DataOptTail(TypeSize AI_Distance=0) const
{ if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**TailPtr(AI_Distance));
}/*
ZCDataOptC DataOptTail(TypeSize AI_Distance=0) const*/
ZCDataOpt DataOpt(TypeSize AI_Index) // 1부터 ZCLinkOpt GetLinkOpt(TypeSize AI_Index)
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Index-1));
}/*
ZCDataOpt DataOpt(TypeSize AI_Index)*/
const ZCDataOpt DataOpt(TypeSize AI_Index) const
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Index-1));
}/*
const ZCDataOpt DataOpt(TypeSize AI_Index) const*/
ZCDataOpt DataOptHead(TypeSize AI_Distance=0)
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Distance));
}/*
ZCDataOpt DataOptHead(TypeSize AI_Distance=0)*/
ZCDataOpt DataOptTail(TypeSize AI_Distance=0)
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**TailPtr(AI_Distance));
}/*
ZCDataOpt DataOptTail(TypeSize AI_Distance=0)*/
const ZCDataOpt DataOptHead(TypeSize AI_Distance=0) const
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**HeadPtr(AI_Distance));
}/*
const ZCDataOpt DataOptHead(TypeSize AI_Distance=0) const*/
const ZCDataOpt DataOptTail(TypeSize AI_Distance=0) const
{
if(mp_HeadLink==0){return ZCDataOpt(0);}
return ZCDataOpt(**TailPtr(AI_Distance));
}/*
const ZCDataOpt DataOptTail(TypeSize AI_Distance=0) const*/
/***/ 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)); }
@ -8187,59 +8166,55 @@ namespace ZNsMain
IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)GetTailLinkPtr();} IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)GetTailLinkPtr();}
void MoveNextIter(ZCLink* & APR_CLink ) const void MoveNextIter(ZCLink* & APR_CLink ) const
{ APR_CLink=APR_CLink->GetNextPtr(); { APR_CLink=APR_CLink->GetNextPtr(); }
}
void MoveNextIter(IterEasyID & ARRI_IterEasyID ) const void MoveNextIter(IterEasyID & ARRI_IterEasyID ) const
{ MoveNextIter((ZCLink*&)(ARRI_IterEasyID)); { MoveNextIter((ZCLink*&)(ARRI_IterEasyID)); }
}
void MoveNextIter(TypeLinkC* & APR_CLink ) const void MoveNextIter(TypeLinkC* & APR_CLink ) const
{ APR_CLink=APR_CLink->GetNextPtr(); { APR_CLink=APR_CLink->GetNextPtr(); }
}
void MoveNextIter(IterEasyIDc& ARRI_IterEasyID ) const void MoveNextIter(IterEasyIDc& ARRI_IterEasyID ) const
{ MoveNextIter((TypeLinkC*&)(ARRI_IterEasyID)); { MoveNextIter((TypeLinkC*&)(ARRI_IterEasyID)); }
}
void MoveNextIter(iterator & ARR_Iterator ) const{++ARR_Iterator;} void MoveNextIter(iterator & ARR_Iterator ) const{++ARR_Iterator;}
void MoveNextIter(iteratorC & ARR_Iterator ) const{++ARR_Iterator;} void MoveNextIter(iteratorC & ARR_Iterator ) const{++ARR_Iterator;}
void MovePrevIter(ZCLink* & APR_CLink ) const void MovePrevIter(ZCLink* & APR_CLink ) const
{ APR_CLink=APR_CLink->GetPrevPtr(); { APR_CLink=APR_CLink->GetPrevPtr(); }
}
void MovePrevIter(IterEasyID & ARRI_IterEasyID ) const void MovePrevIter(IterEasyID & ARRI_IterEasyID ) const
{ MovePrevIter((ZCLink*&)(ARRI_IterEasyID)); { MovePrevIter((ZCLink*&)(ARRI_IterEasyID)); }
}
void MovePrevIter(TypeLinkC* & APR_CLink ) const void MovePrevIter(TypeLinkC* & APR_CLink ) const
{ APR_CLink=APR_CLink->GetPrevPtr(); { APR_CLink=APR_CLink->GetPrevPtr(); }
}
void MovePrevIter(IterEasyIDc& ARRI_IterEasyID ) const void MovePrevIter(IterEasyIDc& ARRI_IterEasyID ) const
{ MovePrevIter((TypeLinkC*&)(ARRI_IterEasyID)); { MovePrevIter((TypeLinkC*&)(ARRI_IterEasyID)); }
}
void MovePrevIter(iterator & ARR_Iterator ) const{--ARR_Iterator;} void MovePrevIter(iterator & ARR_Iterator ) const{--ARR_Iterator;}
void MovePrevIter(iteratorC & ARR_Iterator ) const{--ARR_Iterator;} void MovePrevIter(iteratorC & ARR_Iterator ) const{--ARR_Iterator;}
TypeData & GetDataInIter(ZCLink* AP_CLink ){return **AP_CLink ;} TypeData & GetDataInIter(ZCLink* AP_CLink ){return **AP_CLink ;}
TypeData & GetDataInIter(IterEasyID ARRI_IterEasyID ) TypeData & GetDataInIter(IterEasyID ARRI_IterEasyID )
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID ); } { return GetDataInIter((ZCLink*)ARRI_IterEasyID ) ;}
TypeData & GetDataInIter(iterator& ARR_Iterator ){return *ARR_Iterator;} TypeData & GetDataInIter(iterator& ARR_Iterator ){return *ARR_Iterator;}
TypeDataC& GetDataInIter(TypeLinkC* AP_CLink ) const TypeDataC& GetDataInIter(TypeLinkC* AP_CLink ) const
{ return **AP_CLink ;} { return **AP_CLink ;}
TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID ) const TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID ) const
{ return GetDataInIter((TypeLinkC*)ARRI_IterEasyID); } { return GetDataInIter((TypeLinkC*)ARRI_IterEasyID); }
TypeDataC& GetDataInIter(iteratorC& ARR_Iterator ) TypeDataC& GetDataInIter(iteratorC& ARR_Iterator )
{ return *ARR_Iterator;} { return *ARR_Iterator ;}
TypeData & GetDataInIter( ZCLink* AP_CLink , TypeSize AI_FarNum) TypeData & GetDataInIter( ZCLink* AP_CLink , TypeSize AI_FarNum)
{return **(AP_CLink->GetNextPrevPtr(AI_FarNum)) ; } {return **(AP_CLink->GetNextPrevPtr(AI_FarNum)) ; }
TypeData & GetDataInIter( IterEasyID ARRI_IterEasyID , TypeSize AI_FarNum) TypeData & GetDataInIter( IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID, AI_FarNum); } { return GetDataInIter((ZCLink*)ARRI_IterEasyID , AI_FarNum); }
TypeData & GetDataInIter( iterator& ARR_Iterator , TypeSize AI_FarNum)
{ return GetDataInIter((ZCLink*)ARR_Iterator , AI_FarNum); }
TypeDataC& GetDataInIter( TypeLinkC* AP_CLink , TypeSize AI_FarNum) const TypeDataC& GetDataInIter( TypeLinkC* AP_CLink , TypeSize AI_FarNum) const
{return **(AP_CLink->GetNextPrePtr(AI_FarNum)) ; } {return **(AP_CLink->GetNextPrePtr(AI_FarNum)) ; }
TypeDataC& GetDataInIter( IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const TypeDataC& GetDataInIter( IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID, AI_FarNum); } { return GetDataInIter((ZCLinkC*)ARRI_IterEasyID , AI_FarNum); }
TypeDataC& GetDataInIter( iteratorC& ARR_Iterator , TypeSize AI_FarNum) const
{ return GetDataInIter((ZCLinkC*)ARR_Iterator , AI_FarNum); }
iterator begin() {return ZCLinkPoint(*this); } iterator begin() {return ZCLinkPoint(*this); }
@ -8282,13 +8257,14 @@ namespace ZNsMain
TypeDataC& ItD(IterEasyC AP_CLink ) const {return GetDataInIter(AP_CLink );} TypeDataC& ItD(IterEasyC AP_CLink ) const {return GetDataInIter(AP_CLink );}
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID) const {return GetDataInIter(ARRI_IterEasyID);} TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID) const {return GetDataInIter(ARRI_IterEasyID);}
TypeDataC& ItD(iteratorC& ARR_Iterator ) const {return GetDataInIter(ARR_Iterator );} TypeDataC& ItD(iteratorC& ARR_Iterator ) const {return GetDataInIter(ARR_Iterator );}
/********************************************************************************************************************************/
TypeData & ItD(IterEasy AP_CLink , TypeSize AI_FarNum) {return GetDataInIter(AP_CLink , AI_FarNum);} TypeData & ItD(IterEasy AP_CLink , TypeSize AI_FarNum) {return GetDataInIter(AP_CLink , AI_FarNum);}
TypeData & ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) {return GetDataInIter(ARRI_IterEasyID, AI_FarNum);} TypeData & ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) {return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
TypeData & ItD(iterator ARR_Iterator , TypeSize AI_FarNum) {return GetDataInIter(ARR_Iterator , AI_FarNum);}
TypeDataC& ItD(IterEasyC AP_CLink , TypeSize AI_FarNum) const {return GetDataInIter(AP_CLink , AI_FarNum);} TypeDataC& ItD(IterEasyC AP_CLink , TypeSize AI_FarNum) const {return GetDataInIter(AP_CLink , AI_FarNum);}
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const {return GetDataInIter(ARRI_IterEasyID, AI_FarNum);} TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const {return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
TypeDataC& ItD(iteratorC ARR_Iterator , TypeSize AI_FarNum) const {return GetDataInIter(ARR_Iterator , AI_FarNum);}
public : public :
};/* };/*

View File

@ -811,14 +811,16 @@ namespace ZNsMain
typedef ZCLink TypeLink ; typedef ZCLink TypeLink ;
typedef TypeThis TypeList ; typedef TypeThis TypeList ;
public: public:
typedef ZCLink* IterEasy ; // 가장 대표적으로 쓰일 수 있는 반복자. typedef ZCLink* IterEasy ; // 가장 간단하게 쓰일 수 있는 반복자.
typedef ZCLinkPoint iterator ; // 다양한 기능을 가진 반복자. typedef ZCLinkPoint iterator ; // 다양한 기능을 가진 반복자.
public: public:
typedef ZtCObjOpt<ZCLink > ZCLinkOpt; typedef ZtCObjOpt<ZCLink > ZCLinkOpt;
typedef ZtCObjOpt<TypeData> ZCDataOpt; typedef ZtCObjOpt<TypeData> ZCDataOpt;
public: public:
typedef const TypeList TypeListC ;
typedef const TypeData TypeDataC ; typedef const TypeData TypeDataC ;
typedef const TypeLink TypeLinkC ; typedef const TypeLink TypeLinkC ;
typedef const TypeThis TypeThisC ;
typedef const IterEasy IterEasyC ; typedef const IterEasy IterEasyC ;
typedef const iterator iteratorC ; typedef const iterator iteratorC ;
typedef const ZCLink ZCLinkC ; typedef const ZCLink ZCLinkC ;
@ -1061,8 +1063,8 @@ namespace ZNsMain
TypeSize GetPos () const{ return ml_CurrPos; } TypeSize GetPos () const{ return ml_CurrPos; }
/***************************************************/ /***************************************************/
const TypeList& GetList() const{return mr_CurrList;} TypeListC& GetList() const{return mr_CurrList;}
const TypeLink& GetLink() const{return *mp_CurrLink;} TypeLinkC& GetLink() const{return *mp_CurrLink;}
bool IsValid() const{return mr_CurrList.size()>0;} bool IsValid() const{return mr_CurrList.size()>0;}
@ -1071,9 +1073,17 @@ namespace ZNsMain
ZCLinkPoint& operator= (const ZCLinkPoint& rhs){ return *this; } ZCLinkPoint& operator= (const ZCLinkPoint& rhs){ return *this; }
TypeData & operator*() {return **mp_CurrLink;} TypeData & operator*() {return **mp_CurrLink;}
TypeDataC& operator*() const{return **mp_CurrLink;} TypeDataC& operator*() const{return **mp_CurrLink;}
operator TypeLink * () {return mp_CurrLink;}
operator TypeLinkC* () const{return mp_CurrLink;}
operator TypeLink & () {return *mp_CurrLink;}
operator TypeLinkC& () const{return *mp_CurrLink;}
const ZCLinkPoint& operator++() const const ZCLinkPoint& operator++() const
{ {
if(IsEmpty()){*this;} if(IsEmpty()){*this;}
@ -2826,11 +2836,15 @@ namespace ZNsMain
{return **(AP_CLink->GetNextPrevPtr(AI_FarNum)) ; } {return **(AP_CLink->GetNextPrevPtr(AI_FarNum)) ; }
TypeData & GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) TypeData & GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID , AI_FarNum); } { return GetDataInIter((ZCLink*)ARRI_IterEasyID , AI_FarNum); }
TypeData & GetDataInIter(iterator& ARR_Iterator , TypeSize AI_FarNum)
{ return GetDataInIter((ZCLink*)ARR_Iterator , AI_FarNum); }
TypeDataC& GetDataInIter(TypeLinkC* AP_CLink , TypeSize AI_FarNum) const TypeDataC& GetDataInIter(TypeLinkC* AP_CLink , TypeSize AI_FarNum) const
{return **(AP_CLink->GetNextPrePtr(AI_FarNum)) ; } {return **(AP_CLink->GetNextPrePtr(AI_FarNum)) ; }
TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const TypeDataC& GetDataInIter(IterEasyIDc ARRI_IterEasyID, TypeSize AI_FarNum) const
{ return GetDataInIter((ZCLink*)ARRI_IterEasyID , AI_FarNum); } { return GetDataInIter((ZCLinkC*)ARRI_IterEasyID, AI_FarNum); }
TypeDataC& GetDataInIter(iteratorC& ARR_Iterator , TypeSize AI_FarNum) const
{ return GetDataInIter((ZCLinkC*)ARR_Iterator , AI_FarNum); }
iterator begin() { return ZCLinkPoint(*this); } iterator begin() { return ZCLinkPoint(*this); }
@ -2868,11 +2882,11 @@ namespace ZNsMain
TypeData & ItD(IterEasy AP_CLink ) {return GetDataInIter(AP_CLink );} TypeData & ItD(IterEasy AP_CLink ) {return GetDataInIter(AP_CLink );}
TypeData & ItD(IterEasyID ARRI_IterEasyID) {return GetDataInIter(ARRI_IterEasyID);} TypeData & ItD(IterEasyID ARRI_IterEasyID) {return GetDataInIter(ARRI_IterEasyID);}
TypeData & ItD(iterator ARR_Iterator ) {return GetDataInIter(ARR_Iterator );} TypeData & ItD(iterator& ARR_Iterator ) {return GetDataInIter(ARR_Iterator );}
TypeDataC& ItD(IterEasyC AP_CLink ) const{return GetDataInIter(AP_CLink );} TypeDataC& ItD(IterEasyC AP_CLink ) const{return GetDataInIter(AP_CLink );}
TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID) const{return GetDataInIter(ARRI_IterEasyID);} TypeDataC& ItD(IterEasyIDc ARRI_IterEasyID) const{return GetDataInIter(ARRI_IterEasyID);}
TypeDataC& ItD(iteratorC ARR_Iterator ) const{return GetDataInIter(ARR_Iterator );} TypeDataC& ItD(iteratorC& ARR_Iterator ) const{return GetDataInIter(ARR_Iterator );}
TypeData & ItD(IterEasy AP_CLink , TypeSize AI_FarNum){return GetDataInIter(AP_CLink , AI_FarNum);} TypeData & ItD(IterEasy AP_CLink , TypeSize AI_FarNum){return GetDataInIter(AP_CLink , AI_FarNum);}