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

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