commit 2025-09-11 12:36 edit codes for ZtCInit<> in ZCppMain/ZtSimList.H etc
This commit is contained in:
@ -12,7 +12,7 @@ namespace ZNsMain
|
||||
|
||||
/*/////////////////////////////////////////////////////////////////
|
||||
|
||||
■ typename TTypCInit 는 별다른 역할을 하지 않고 있다. 다른 리스트
|
||||
■ typename TTypeInit 는 별다른 역할을 하지 않고 있다. 다른 리스트
|
||||
클래스와 템플릿 인수를 비슷하게 맞추기 위해, 그리고 차후의 설계
|
||||
를 위해 일단 이대로 두자.
|
||||
|
||||
@ -20,7 +20,7 @@ namespace ZNsMain
|
||||
|
||||
-- 2025-08-11 14:47
|
||||
|
||||
ZtCTreeData.H 에서 ZtCObjList<> 에서 TTypCInit 자리에 형을 지정
|
||||
ZtCTreeData.H 에서 ZtCObjList<> 에서 TTypeInit 자리에 형을 지정
|
||||
하고 있다. 쓰긴 쓰니까 주석을 해제하자. -- 2025-08-14 13:43
|
||||
|
||||
/////////////////////////////////////////////////////////////////*/
|
||||
@ -29,15 +29,15 @@ namespace ZNsMain
|
||||
template<typename TypeObjList> class ZtCSortObjList;
|
||||
|
||||
|
||||
template< typename TType ,
|
||||
typename TTypArgu = const TType&,
|
||||
typename TTypCAlloc = ZCAllocator ,
|
||||
typename TTypCInit = ZCInit ,
|
||||
typename TTypSize = ZTypLong ,
|
||||
template< typename TType , /////////////////////////////
|
||||
typename TTypArgu = const TType& ,
|
||||
typename TTypCAlloc = ZCAllocator ,
|
||||
typename TTypeInit = ZtCInit<TType>,
|
||||
typename TTypSize = ZTypLong ,
|
||||
typename TMoveObj = ZNsMain::
|
||||
ZtCMoveObj<TType, TTypArgu, true>
|
||||
>
|
||||
class ZtCObjList //////////////////////////////
|
||||
class ZtCObjList ////////////////////////////////////////////////////////////*/
|
||||
{
|
||||
public:
|
||||
template<typename TypeObjList> friend class ZtCSortObjList;
|
||||
@ -46,7 +46,7 @@ namespace ZNsMain
|
||||
typedef TType TypeData ;
|
||||
typedef TTypArgu TypeArg ;
|
||||
typedef TTypCAlloc TypeAlloc ;
|
||||
//typedef TTypCInit TypeInit ;
|
||||
typedef TTypeInit TypeInit ;
|
||||
typedef TTypSize TypeSize ;
|
||||
typedef TMoveObj TypeMoveObj;
|
||||
public:
|
||||
@ -231,34 +231,53 @@ namespace ZNsMain
|
||||
TypeSize ml_Size ;
|
||||
protected:
|
||||
|
||||
virtual void OnDelete(
|
||||
ZCLink* AP_CutHead, TypeSize AI_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TypeSize AI_CutTailPos
|
||||
/*//////////*/ )
|
||||
void OnDelete /*//////////////////////////////////////////////*/
|
||||
(
|
||||
ZCLink* AP_CutHead, TypeSize AI_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TypeSize AI_CutTailPos
|
||||
)
|
||||
/*############################################################*/
|
||||
{
|
||||
// 상속클래스에서 추가된 멤버 데이타가 링크의 삭제시 변해야 하는 값이라면
|
||||
// 이 함수를 overload 하여 값을 조종한다.
|
||||
}/*
|
||||
virtual void OnDelete(
|
||||
ZCLink* AP_CutHead, TypeSize AI_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TypeSize AI_CutTailPos
|
||||
////////////// ) */
|
||||
// 상속클래스에서 추가된 멤버 데이타가 링크의 삭제시 변해야
|
||||
// 하는 값이라면, 이 함수를 overload 하여 값을 조종한다.
|
||||
|
||||
if(TypeInit::EUseFini<1) return;
|
||||
|
||||
TypeSize VL_LoopCnt = AI_CutTailPos-AI_CutHeadPos+1 ;
|
||||
ZCLink* VP_NowLink = AP_CutHead ;
|
||||
|
||||
__for1(TypeSize, i, VL_LoopCnt)
|
||||
{
|
||||
TypeInit::OnFini(VP_NowLink->mo_Data, *this) ;
|
||||
|
||||
VP_NowLink = VP_NowLink->mp_NextLink;
|
||||
}/*
|
||||
__for1(TypeSize, i, VL_LoopCnt)*/
|
||||
}
|
||||
/*############################################################*/
|
||||
|
||||
|
||||
virtual void OnInsert(
|
||||
TypeSize AI_InsertPos , // 삽입되는 위치
|
||||
TypeSize AI_InsertSize, // 삽입되는 링크의 갯수
|
||||
ZCLink* AP_HeadInsert // 삽입되는 첫번째 링크의 포인터
|
||||
/*//////////*/ )
|
||||
void OnInsert /*//////////////////////////////////////////////*/
|
||||
(
|
||||
TypeSize AI_InsertPos , // 삽입되는 위치
|
||||
TypeSize AI_InsertSize, // 삽입되는 링크의 갯수
|
||||
ZCLink* AP_HeadInsert // 삽입되는 첫번째 링크의 포인터
|
||||
)
|
||||
/*############################################################*/
|
||||
{
|
||||
// 상속클래스에서 추가된 멤버 데이타가 링크의 삽입시 변해야 하는 값이라면
|
||||
// 이 함수를 overload 하여 값을 조종한다.
|
||||
}/*
|
||||
virtual void OnInsert(
|
||||
TypeSize AI_InsertPos ,
|
||||
TypeSize AI_InsertSize,
|
||||
ZCLink* AP_HeadInsert
|
||||
////////////// ) */
|
||||
if(TypeInit::EUseInit<1) return;
|
||||
|
||||
ZCLink* VP_NowLink = AP_HeadInsert;
|
||||
|
||||
__for1(TypeSize, i, AI_InsertSize)
|
||||
{
|
||||
TypeInit::OnInit(VP_NowLink->mo_Data, *this);
|
||||
|
||||
VP_NowLink = VP_NowLink->mp_NextLink;
|
||||
}/*
|
||||
__for1(TypeSize, i, AI_InsertSize)*/
|
||||
}
|
||||
/*############################################################*/
|
||||
|
||||
|
||||
void JoinAfter(ZCLink* AP_LinkInsert, ZCLink* AP_LinkStd, TypeSize AL_PosStd)
|
||||
@ -268,7 +287,7 @@ namespace ZNsMain
|
||||
|
||||
if(AP_LinkStd==0)
|
||||
{
|
||||
OnInsert(1,1,AP_LinkInsert);
|
||||
OnInsert(1, 1, AP_LinkInsert);
|
||||
|
||||
if(++ml_Size==1)
|
||||
{
|
||||
@ -1005,7 +1024,7 @@ namespace ZNsMain
|
||||
do ////
|
||||
{
|
||||
VP_DelLink =mp_HeadLink;
|
||||
mp_HeadLink=mp_HeadLink->mp_NextLink;
|
||||
mp_HeadLink=mp_HeadLink->mp_NextLink ;
|
||||
|
||||
delete VP_DelLink;
|
||||
}
|
||||
@ -2159,15 +2178,15 @@ namespace ZNsMain
|
||||
|
||||
public:
|
||||
};/*
|
||||
template< typename TType ,
|
||||
typename TTypArgu = const TType&,
|
||||
typename TTypCAlloc = ZCAllocator ,
|
||||
typename TTypCInit = ZCInit ,
|
||||
typename TTypSize = ZTypLong ,
|
||||
template< typename TType ,
|
||||
typename TTypArgu = const TType& ,
|
||||
typename TTypCAlloc = ZCAllocator ,
|
||||
typename TTypeInit = ZtCInit<TType>,
|
||||
typename TTypSize = ZTypLong ,
|
||||
typename TMoveObj = ZNsMain::
|
||||
ZtCMoveObj<TType, TTypArg, true>
|
||||
ZtCMoveObj<TType, TTypArgu, true>
|
||||
>
|
||||
class ZtCObjList ////////////////////////////*/
|
||||
class ZtCObjList ////////////////////////////////////////////////////////////*/
|
||||
|
||||
|
||||
/*/////////////////////////////////////////////////////////////////////////////
|
||||
|
Reference in New Issue
Block a user