commit 2025-10-15 14:13 TypeDataMaIN => TypeDataCore : ZCppMain/ZtCLinkList.H

This commit is contained in:
2025-10-15 14:13:41 +09:00
parent 0fb0270a53
commit 2b4596b065

View File

@ -1006,16 +1006,16 @@ namespace ZNsMain
typedef typename ZCTypeNowCRTP::TypeData TypeChild; typedef typename ZCTypeNowCRTP::TypeData TypeChild;
/*************************************************************************/ /*************************************************************************/
typedef typename TCLink::TypeData TypeDataMain ; typedef typename TCLink::TypeData TypeDataCore ;
typedef const TypeDataMain TypeDataMainC; typedef const TypeDataCore TypeDataCoreC;
/*///////////////////////////////////////////////////////////////////////// /*/////////////////////////////////////////////////////////////////////////
■ TCLink::TypeData (TypeDataMain) ■ TCLink::TypeData (TypeDataCore)
TCLink 에 상속 클래스 자료형이 지정되어 있다면 그 상속 클래스. TCLink 에 상속 클래스 자료형이 지정되어 있다면 그 상속 클래스.
TCLink 에 기반 클래스 자료형만 지정되어 있다면 그 기반 클래스. TCLink 에 기반 클래스 자료형만 지정되어 있다면 그 기반 클래스.
ItD() 에서 TypeDataMain 을 사용한다. -- 2025-10-15 13:16 ItD() 에서 TypeDataCore 을 사용한다. -- 2025-10-15 13:16
/////////////////////////////////////////////////////////////////////////*/ /////////////////////////////////////////////////////////////////////////*/
public : public :
@ -1046,8 +1046,22 @@ namespace ZNsMain
typedef TypeIterN iteratorN ; typedef TypeIterN iteratorN ;
/*************************************************************************/ /*************************************************************************/
public : /*************************************************************************/
typedef typename TCLink::TypeMain TypeMain; typedef typename TCLink::TypeMain TypeMain;
/**************************************************************************
ZNsIFaceEx::ZtCLink 는 TypeMain 이라는 자료형을 갖는데, ZtCLink 이
상속 클래스가 있다면, 그 상속 클래스
상속 클래스가 없다면, 클래스 자기 자신
를 나타낸다. 그래서 ZtCLinkList 에서 new 로 객체를 만들 때,
ZtCLink* my = new TypeMain;
처럼 쓸 수 있게 한다. -- 2025-10-07 17:49
/////////////////////////////////////////////////////////////////////////*/
private: private:
ZCLink* mp_HeadLink; ZCLink* mp_HeadLink;
ZCLink* mp_TailLink; ZCLink* mp_TailLink;
@ -2788,7 +2802,7 @@ namespace ZNsMain
IterEasyIDc ItTIDc () const{return GetTailIterEasyIDc();} IterEasyIDc ItTIDc () const{return GetTailIterEasyIDc();}
void ItNext(TypeLink* & APR_CLink ) const void ItNext(TypeLink * & APR_CLink ) const
{ APR_CLink=APR_CLink->GetNextPtr(); } { APR_CLink=APR_CLink->GetNextPtr(); }
void ItNext(IterEasyID & ARRI_IterEasyID ) const void ItNext(IterEasyID & ARRI_IterEasyID ) const
{ ItNext((ZCLink*&)(ARRI_IterEasyID)); } { ItNext((ZCLink*&)(ARRI_IterEasyID)); }
@ -2799,7 +2813,7 @@ namespace ZNsMain
void ItNext(iterator & ARR_Iterator ) const{++ARR_Iterator;} void ItNext(iterator & ARR_Iterator ) const{++ARR_Iterator;}
void ItNext(iteratorN & ARR_Iterator ) const{++ARR_Iterator;} void ItNext(iteratorN & ARR_Iterator ) const{++ARR_Iterator;}
void ItPrev(ZCLink* & APR_CLink ) const void ItPrev(TypeLink * & APR_CLink ) const
{ APR_CLink=APR_CLink->GetPrevPtr(); } { APR_CLink=APR_CLink->GetPrevPtr(); }
void ItPrev(IterEasyID & ARRI_IterEasyID ) const void ItPrev(IterEasyID & ARRI_IterEasyID ) const
{ ItPrev((ZCLink*&)(ARRI_IterEasyID)); } { ItPrev((ZCLink*&)(ARRI_IterEasyID)); }
@ -2811,21 +2825,21 @@ namespace ZNsMain
void ItPrev(iteratorN & ARR_Iterator ) const{--ARR_Iterator;} void ItPrev(iteratorN & ARR_Iterator ) const{--ARR_Iterator;}
TypeDataMain & ItD(TypeLink * AP_Link ) {return **AP_Link;} TypeDataCore & ItD(TypeLink * AP_Link ) {return **AP_Link;}
TypeDataMain & ItD(IterEasyID AH_IterEasyID ) {return **(TypeLink *)(AH_IterEasyID);} TypeDataCore & ItD(IterEasyID AH_IterEasyID ) {return **(TypeLink *)(AH_IterEasyID);}
TypeDataMain & ItD(iterator & ARR_Iterator ) {return **ARR_Iterator;} TypeDataCore & ItD(iterator & ARR_Iterator ) {return **ARR_Iterator;}
TypeDataMainC& ItD(TypeLinkC * AP_Link ) const{return **AP_Link;} TypeDataCoreC& ItD(TypeLinkC * AP_Link ) const{return **AP_Link;}
TypeDataMainC& ItD(IterEasyIDc AH_IterEasyID ) const{return **(TypeLinkC*)(AH_IterEasyID);} TypeDataCoreC& ItD(IterEasyIDc AH_IterEasyID ) const{return **(TypeLinkC*)(AH_IterEasyID);}
TypeDataMainC& ItD(iteratorN & ARR_Iterator ) const{return **ARR_Iterator;} TypeDataCoreC& ItD(iteratorN & ARR_Iterator ) const{return **ARR_Iterator;}
TypeDataMain & ItD(TypeLink * AP_Link , TypeSize AI_FarNum) {return *((*AP_Link)+AI_FarNum);} TypeDataCore & ItD(TypeLink * AP_Link , TypeSize AI_FarNum) {return *((*AP_Link)+AI_FarNum);}
TypeDataMain & ItD(IterEasyID AH_IterEasyID, TypeSize AI_FarNum) {return *(((TypeLink *)(AH_IterEasyID))+AI_FarNum);} TypeDataCore & ItD(IterEasyID AH_IterEasyID, TypeSize AI_FarNum) {return *(((TypeLink *)(AH_IterEasyID))+AI_FarNum);}
TypeDataMain & ItD(iterator & ARR_Iterator , TypeSize AI_FarNum) {return *(ARR_Iterator.GetNode()+AI_FarNum);} TypeDataCore & ItD(iterator & ARR_Iterator , TypeSize AI_FarNum) {return *(ARR_Iterator.GetNode()+AI_FarNum);}
TypeDataMainC& ItD(TypeLinkC * AP_Link , TypeSize AI_FarNum) const{return *((*AP_Link)+AI_FarNum);} TypeDataCoreC& ItD(TypeLinkC * AP_Link , TypeSize AI_FarNum) const{return *((*AP_Link)+AI_FarNum);}
TypeDataMainC& ItD(IterEasyIDc AH_IterEasyID, TypeSize AI_FarNum) const{return *(((TypeLinkC*)(AH_IterEasyID))+AI_FarNum);} TypeDataCoreC& ItD(IterEasyIDc AH_IterEasyID, TypeSize AI_FarNum) const{return *(((TypeLinkC*)(AH_IterEasyID))+AI_FarNum);}
TypeDataMainC& ItD(iteratorN & ARR_Iterator , TypeSize AI_FarNum) const{return *(ARR_Iterator.GetNode()+AI_FarNum);} TypeDataCoreC& ItD(iteratorN & ARR_Iterator , TypeSize AI_FarNum) const{return *(ARR_Iterator.GetNode()+AI_FarNum);}
public : public :