commit 2025-09-11 12:36 edit codes for ZtCInit<> in ZCppMain/ZtSimList.H etc
This commit is contained in:
@ -3628,13 +3628,36 @@ namespace ZNsMain
|
|||||||
ZftCopyChars(TTypeCh* ApcDest, TTypeSize AL_DestSize, const TTypeCh* ApcSource) */
|
ZftCopyChars(TTypeCh* ApcDest, TTypeSize AL_DestSize, const TTypeCh* ApcSource) */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*######################################################################################
|
||||||
|
|
||||||
|
■ ZtCInit<>, ZCInit 은 주로 자유 기억 공간을 구현하는 자료 구조에서 사용한다.
|
||||||
|
|
||||||
|
1) 자유 기억 공간에서 나오는 data 에 대하여 OnInit() 를 호출한다.
|
||||||
|
2) 자유 기억 공간으로 가 는 data 에 대하여 OnFini() 를 호출한다.
|
||||||
|
|
||||||
|
그런데 2) 는 자료 구조에 따라 호출하지 않을 수도 있다. 다수의 원소가 자유 기억 공간으
|
||||||
|
로 들어갈 때, 일일이 그 모든 원소에 대해 Onfini() 를 호출하는 것은 낭비일 수 있는 것이
|
||||||
|
다.
|
||||||
|
|
||||||
|
-- 2025-09-11 11:00
|
||||||
|
|
||||||
|
■ 주로 container 인 typename TType2 을 인수로 받아, container 와의 활용도롤 높이고 있다.
|
||||||
|
|
||||||
|
-- 2025-09-11 11:03
|
||||||
|
|
||||||
|
######################################################################################*/
|
||||||
|
|
||||||
template<typename TType> class ZtCInit
|
template<typename TType> class ZtCInit
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void operator()(TType& AR_TypeArg){}
|
enum{EUseInit=0};
|
||||||
|
enum{EUseFini=0};
|
||||||
public:
|
public:
|
||||||
void OnInit(TType& AR_TypeArg){}
|
template<typename TType2>
|
||||||
void OnFini(TType& AR_TypeArg){}
|
static void OnInit(TType& AR_TypeArg, TType2& AR_TypeArg2){}
|
||||||
|
template<typename TType2>
|
||||||
|
static void OnFini(TType& AR_TypeArg, TType2& AR_TypeArg2){}
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template<typename TType> class ZtCInit*/
|
template<typename TType> class ZtCInit*/
|
||||||
@ -3643,12 +3666,13 @@ namespace ZNsMain
|
|||||||
class ZCInit
|
class ZCInit
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
template<typename TType> void operator()(TType& AR_TypeArg){}
|
enum{EUseInit=0};
|
||||||
template<typename TType> void OnInit (TType& AR_TypeArg){}
|
enum{EUseFini=0};
|
||||||
template<typename TType> void OnFini (TType& AR_TypeArg){}
|
public:
|
||||||
|
template<typename TType, typename TType2>
|
||||||
void OnInit(){}
|
static void OnInit(TType& AR_TypeArg, TType2& AR_TypeArg2){}
|
||||||
void OnFini(){}
|
template<typename TType, typename TType2>
|
||||||
|
static void OnFini(TType& AR_TypeArg, TType2& AR_TypeArg2){}
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
class ZCInit*/
|
class ZCInit*/
|
||||||
|
@ -2422,6 +2422,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
using ZNsMain::ZtCObjAVL;
|
using ZNsMain::ZtCObjAVL;
|
||||||
|
|
||||||
|
|
||||||
namespace ZNsTmplParam
|
namespace ZNsTmplParam
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
/*/////////////////////////////////////////////////////////////////
|
/*/////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
■ typename TTypCInit 는 별다른 역할을 하지 않고 있다. 다른 리스트
|
■ typename TTypeInit 는 별다른 역할을 하지 않고 있다. 다른 리스트
|
||||||
클래스와 템플릿 인수를 비슷하게 맞추기 위해, 그리고 차후의 설계
|
클래스와 템플릿 인수를 비슷하게 맞추기 위해, 그리고 차후의 설계
|
||||||
를 위해 일단 이대로 두자.
|
를 위해 일단 이대로 두자.
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
-- 2025-08-11 14:47
|
-- 2025-08-11 14:47
|
||||||
|
|
||||||
ZtCTreeData.H 에서 ZtCObjList<> 에서 TTypCInit 자리에 형을 지정
|
ZtCTreeData.H 에서 ZtCObjList<> 에서 TTypeInit 자리에 형을 지정
|
||||||
하고 있다. 쓰긴 쓰니까 주석을 해제하자. -- 2025-08-14 13:43
|
하고 있다. 쓰긴 쓰니까 주석을 해제하자. -- 2025-08-14 13:43
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////*/
|
/////////////////////////////////////////////////////////////////*/
|
||||||
@ -29,15 +29,15 @@ namespace ZNsMain
|
|||||||
template<typename TypeObjList> class ZtCSortObjList;
|
template<typename TypeObjList> class ZtCSortObjList;
|
||||||
|
|
||||||
|
|
||||||
template< typename TType ,
|
template< typename TType , /////////////////////////////
|
||||||
typename TTypArgu = const TType&,
|
typename TTypArgu = const TType& ,
|
||||||
typename TTypCAlloc = ZCAllocator ,
|
typename TTypCAlloc = ZCAllocator ,
|
||||||
typename TTypCInit = ZCInit ,
|
typename TTypeInit = ZtCInit<TType>,
|
||||||
typename TTypSize = ZTypLong ,
|
typename TTypSize = ZTypLong ,
|
||||||
typename TMoveObj = ZNsMain::
|
typename TMoveObj = ZNsMain::
|
||||||
ZtCMoveObj<TType, TTypArgu, true>
|
ZtCMoveObj<TType, TTypArgu, true>
|
||||||
>
|
>
|
||||||
class ZtCObjList //////////////////////////////
|
class ZtCObjList ////////////////////////////////////////////////////////////*/
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
template<typename TypeObjList> friend class ZtCSortObjList;
|
template<typename TypeObjList> friend class ZtCSortObjList;
|
||||||
@ -46,7 +46,7 @@ namespace ZNsMain
|
|||||||
typedef TType TypeData ;
|
typedef TType TypeData ;
|
||||||
typedef TTypArgu TypeArg ;
|
typedef TTypArgu TypeArg ;
|
||||||
typedef TTypCAlloc TypeAlloc ;
|
typedef TTypCAlloc TypeAlloc ;
|
||||||
//typedef TTypCInit TypeInit ;
|
typedef TTypeInit TypeInit ;
|
||||||
typedef TTypSize TypeSize ;
|
typedef TTypSize TypeSize ;
|
||||||
typedef TMoveObj TypeMoveObj;
|
typedef TMoveObj TypeMoveObj;
|
||||||
public:
|
public:
|
||||||
@ -231,34 +231,53 @@ namespace ZNsMain
|
|||||||
TypeSize ml_Size ;
|
TypeSize ml_Size ;
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
virtual void OnDelete(
|
void OnDelete /*//////////////////////////////////////////////*/
|
||||||
ZCLink* AP_CutHead, TypeSize AI_CutHeadPos,
|
(
|
||||||
ZCLink* AP_CutTail, TypeSize AI_CutTailPos
|
ZCLink* AP_CutHead, TypeSize AI_CutHeadPos,
|
||||||
/*//////////*/ )
|
ZCLink* AP_CutTail, TypeSize AI_CutTailPos
|
||||||
|
)
|
||||||
|
/*############################################################*/
|
||||||
{
|
{
|
||||||
// 상속클래스에서 추가된 멤버 데이타가 링크의 삭제시 변해야 하는 값이라면
|
// 상속클래스에서 추가된 멤버 데이타가 링크의 삭제시 변해야
|
||||||
// 이 함수를 overload 하여 값을 조종한다.
|
// 하는 값이라면, 이 함수를 overload 하여 값을 조종한다.
|
||||||
}/*
|
|
||||||
virtual void OnDelete(
|
if(TypeInit::EUseFini<1) return;
|
||||||
ZCLink* AP_CutHead, TypeSize AI_CutHeadPos,
|
|
||||||
ZCLink* AP_CutTail, TypeSize AI_CutTailPos
|
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(
|
void OnInsert /*//////////////////////////////////////////////*/
|
||||||
TypeSize AI_InsertPos , // 삽입되는 위치
|
(
|
||||||
TypeSize AI_InsertSize, // 삽입되는 링크의 갯수
|
TypeSize AI_InsertPos , // 삽입되는 위치
|
||||||
ZCLink* AP_HeadInsert // 삽입되는 첫번째 링크의 포인터
|
TypeSize AI_InsertSize, // 삽입되는 링크의 갯수
|
||||||
/*//////////*/ )
|
ZCLink* AP_HeadInsert // 삽입되는 첫번째 링크의 포인터
|
||||||
|
)
|
||||||
|
/*############################################################*/
|
||||||
{
|
{
|
||||||
// 상속클래스에서 추가된 멤버 데이타가 링크의 삽입시 변해야 하는 값이라면
|
if(TypeInit::EUseInit<1) return;
|
||||||
// 이 함수를 overload 하여 값을 조종한다.
|
|
||||||
}/*
|
ZCLink* VP_NowLink = AP_HeadInsert;
|
||||||
virtual void OnInsert(
|
|
||||||
TypeSize AI_InsertPos ,
|
__for1(TypeSize, i, AI_InsertSize)
|
||||||
TypeSize AI_InsertSize,
|
{
|
||||||
ZCLink* AP_HeadInsert
|
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)
|
void JoinAfter(ZCLink* AP_LinkInsert, ZCLink* AP_LinkStd, TypeSize AL_PosStd)
|
||||||
@ -268,7 +287,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(AP_LinkStd==0)
|
if(AP_LinkStd==0)
|
||||||
{
|
{
|
||||||
OnInsert(1,1,AP_LinkInsert);
|
OnInsert(1, 1, AP_LinkInsert);
|
||||||
|
|
||||||
if(++ml_Size==1)
|
if(++ml_Size==1)
|
||||||
{
|
{
|
||||||
@ -1005,7 +1024,7 @@ namespace ZNsMain
|
|||||||
do ////
|
do ////
|
||||||
{
|
{
|
||||||
VP_DelLink =mp_HeadLink;
|
VP_DelLink =mp_HeadLink;
|
||||||
mp_HeadLink=mp_HeadLink->mp_NextLink;
|
mp_HeadLink=mp_HeadLink->mp_NextLink ;
|
||||||
|
|
||||||
delete VP_DelLink;
|
delete VP_DelLink;
|
||||||
}
|
}
|
||||||
@ -2159,15 +2178,15 @@ namespace ZNsMain
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template< typename TType ,
|
template< typename TType ,
|
||||||
typename TTypArgu = const TType&,
|
typename TTypArgu = const TType& ,
|
||||||
typename TTypCAlloc = ZCAllocator ,
|
typename TTypCAlloc = ZCAllocator ,
|
||||||
typename TTypCInit = ZCInit ,
|
typename TTypeInit = ZtCInit<TType>,
|
||||||
typename TTypSize = ZTypLong ,
|
typename TTypSize = ZTypLong ,
|
||||||
typename TMoveObj = ZNsMain::
|
typename TMoveObj = ZNsMain::
|
||||||
ZtCMoveObj<TType, TTypArg, true>
|
ZtCMoveObj<TType, TTypArgu, true>
|
||||||
>
|
>
|
||||||
class ZtCObjList ////////////////////////////*/
|
class ZtCObjList ////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
/*/////////////////////////////////////////////////////////////////////////////
|
/*/////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -15,11 +15,11 @@ namespace ZNsMain
|
|||||||
|
|
||||||
template /*#######################################*/
|
template /*#######################################*/
|
||||||
<
|
<
|
||||||
typename TType ,
|
typename TType ,
|
||||||
typename TTypArgu =const TType&,
|
typename TTypArgu = const TType& ,
|
||||||
typename TTypCAlloc=ZCAllocator ,
|
typename TTypCAlloc= ZCAllocator ,
|
||||||
typename TTypCInit =ZCInit ,
|
typename TTypCInit = ZtCInit<TType> ,
|
||||||
typename TTypSize =ZTypLong ,
|
typename TTypSize = ZTypLong ,
|
||||||
typename TMoveObj = ZNsMain::
|
typename TMoveObj = ZNsMain::
|
||||||
ZtCMoveObj<TType, TTypArgu, true>
|
ZtCMoveObj<TType, TTypArgu, true>
|
||||||
>
|
>
|
||||||
@ -54,7 +54,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
ZCLink* mp_NextLink;
|
ZCLink* mp_NextLink;
|
||||||
TType mo_Type ;
|
TType mo_Data ;
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
@ -89,62 +89,62 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
// TType 의 대입연산자는 반드시 public 영역에 있어야 한다.
|
// TType 의 대입연산자는 반드시 public 영역에 있어야 한다.
|
||||||
|
|
||||||
mo_Type=rhs.mo_Type;
|
mo_Data=rhs.mo_Data;
|
||||||
}/*
|
}/*
|
||||||
ZCLink(const ZCLink& rhs)*/
|
ZCLink(const ZCLink& rhs)*/
|
||||||
|
|
||||||
ZCLink(TypeArg AR_Type):mp_NextLink(0)
|
ZCLink(TypeArg AR_Type):mp_NextLink(0)
|
||||||
{
|
{
|
||||||
mo_Type=AR_Type;
|
mo_Data=AR_Type;
|
||||||
}/*
|
}/*
|
||||||
ZCLink(TypeArg AR_Type)*/
|
ZCLink(TypeArg AR_Type)*/
|
||||||
|
|
||||||
operator TType&()
|
operator TType&()
|
||||||
{
|
{
|
||||||
return mo_Type;
|
return mo_Data;
|
||||||
}/*
|
}/*
|
||||||
operator TType&()*/
|
operator TType&()*/
|
||||||
|
|
||||||
operator TType()
|
operator TType()
|
||||||
{
|
{
|
||||||
return mo_Type;
|
return mo_Data;
|
||||||
}/*
|
}/*
|
||||||
operator TType()*/
|
operator TType()*/
|
||||||
|
|
||||||
TType& GetData()
|
TType& GetData()
|
||||||
{
|
{
|
||||||
return mo_Type;
|
return mo_Data;
|
||||||
}/*
|
}/*
|
||||||
TType& GetData()*/
|
TType& GetData()*/
|
||||||
|
|
||||||
const TType& GetData() const
|
const TType& GetData() const
|
||||||
{
|
{
|
||||||
return mo_Type;
|
return mo_Data;
|
||||||
}/*
|
}/*
|
||||||
const TType& GetData() const*/
|
const TType& GetData() const*/
|
||||||
|
|
||||||
TType& GetData(TTypSize AL_FarNum) // must AL_FarNum >= 0
|
TType& GetData(TTypSize AL_FarNum) // must AL_FarNum >= 0
|
||||||
{
|
{
|
||||||
return GetNextPtr(AL_FarNum)->mo_Type;
|
return GetNextPtr(AL_FarNum)->mo_Data;
|
||||||
}/*
|
}/*
|
||||||
TType& GetData(TTypSize AL_FarNum)*/
|
TType& GetData(TTypSize AL_FarNum)*/
|
||||||
|
|
||||||
const TType& GetData(TTypSize AL_FarNum) const
|
const TType& GetData(TTypSize AL_FarNum) const
|
||||||
{
|
{
|
||||||
return GetNextPtr(AL_FarNum)->mo_Type;
|
return GetNextPtr(AL_FarNum)->mo_Data;
|
||||||
}/*
|
}/*
|
||||||
const TType& GetData(TTypSize AL_FarNum) const*/
|
const TType& GetData(TTypSize AL_FarNum) const*/
|
||||||
|
|
||||||
|
|
||||||
TType& operator*()
|
TType& operator*()
|
||||||
{
|
{
|
||||||
return mo_Type;
|
return mo_Data;
|
||||||
}/*
|
}/*
|
||||||
TType& operator*()*/
|
TType& operator*()*/
|
||||||
|
|
||||||
const TType& operator*() const
|
const TType& operator*() const
|
||||||
{
|
{
|
||||||
return mo_Type;
|
return mo_Data;
|
||||||
}/*
|
}/*
|
||||||
const TType& operator*() const*/
|
const TType& operator*() const*/
|
||||||
|
|
||||||
@ -199,7 +199,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
ZCLink& operator=(TypeArg AR_Type)
|
ZCLink& operator=(TypeArg AR_Type)
|
||||||
{
|
{
|
||||||
mo_Type=AR_Type; return *this;
|
mo_Data=AR_Type; return *this;
|
||||||
}/*
|
}/*
|
||||||
ZCLink& operator=(TypeArg AR_Type)*/
|
ZCLink& operator=(TypeArg AR_Type)*/
|
||||||
|
|
||||||
@ -222,11 +222,11 @@ namespace ZNsMain
|
|||||||
class ZCLink*/
|
class ZCLink*/
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
/*************** end class ZCLink ***************/
|
/*************** end class ZCLink ***************/
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
//////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
class ZCLinkHeap : public ZCFreeAllocBase
|
class ZCLinkHeap : public ZCFreeAllocBase
|
||||||
@ -242,8 +242,6 @@ namespace ZNsMain
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
TypeInit mo_TypeInit;
|
|
||||||
|
|
||||||
TTypSize ml_AllSize ;
|
TTypSize ml_AllSize ;
|
||||||
TTypSize ml_UseSize ;
|
TTypSize ml_UseSize ;
|
||||||
|
|
||||||
@ -264,8 +262,16 @@ namespace ZNsMain
|
|||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
if(ml_UseSize==0)
|
if(ml_UseSize==0)
|
||||||
return (++ml_AllSize, new ZCLink) ;
|
{
|
||||||
/////////////////
|
ZCLink* VP_TempLink = new ZCLink ;
|
||||||
|
|
||||||
|
if(TypeInit::EUseInit>0)
|
||||||
|
TypeInit::OnInit(VP_TempLink->mo_Data, *this);
|
||||||
|
|
||||||
|
return (++ml_AllSize, VP_TempLink);
|
||||||
|
}/*
|
||||||
|
if(ml_UseSize==0)*/
|
||||||
|
|
||||||
|
|
||||||
ZCLink* VP_TempLink=mp_NoUseHeadLink;
|
ZCLink* VP_TempLink=mp_NoUseHeadLink;
|
||||||
|
|
||||||
@ -305,11 +311,12 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
else if(AL_LinkSize==ml_UseSize)
|
else if(AL_LinkSize==ml_UseSize)
|
||||||
{
|
{
|
||||||
ZCLink* VP_Temp=mp_NoUseHeadLink;
|
ZCLink* VP_Temp = mp_NoUseHeadLink;
|
||||||
|
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
mo_TypeInit(VP_Temp->mo_Type);
|
if(TypeInit::EUseInit>0)
|
||||||
|
TypeInit::OnInit(VP_Temp->mo_Data, *this);
|
||||||
|
|
||||||
if(VP_Temp==mp_NoUseTailLink)
|
if(VP_Temp==mp_NoUseTailLink)
|
||||||
{ break; }
|
{ break; }
|
||||||
@ -328,17 +335,20 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
else if(AL_LinkSize<ml_UseSize)
|
else if(AL_LinkSize<ml_UseSize)
|
||||||
{
|
{
|
||||||
APR_HeadLink=mp_NoUseHeadLink;
|
APR_HeadLink = mp_NoUseHeadLink;
|
||||||
|
|
||||||
mo_TypeInit(mp_NoUseHeadLink->mo_Type);
|
if(TypeInit::EUseInit>0)
|
||||||
|
TypeInit::OnInit(mp_NoUseHeadLink->mo_Data, *this);
|
||||||
|
|
||||||
for(TTypSize VL_Count=2; VL_Count<=AL_LinkSize; ++VL_Count)
|
for(TTypSize VL_Count=2; VL_Count<=AL_LinkSize; ++VL_Count)
|
||||||
{
|
{
|
||||||
// VL_Count 가 2 부터 시작함으로 AL_LinkSize-1 번 순환한다.
|
// VL_Count 가 2 부터 시작함으로 AL_LinkSize-1 번 순환한다.
|
||||||
// 그래야지 AL_LinkSize 개의 링크를 자를 수 있다.
|
// 그래야지 AL_LinkSize 개의 링크를 자를 수 있다.
|
||||||
|
|
||||||
mp_NoUseHeadLink=mp_NoUseHeadLink->mp_NextLink;
|
mp_NoUseHeadLink = mp_NoUseHeadLink->mp_NextLink;
|
||||||
mo_TypeInit(mp_NoUseHeadLink->mo_Type);
|
|
||||||
|
if(TypeInit::EUseInit>0)
|
||||||
|
TypeInit::OnInit(mp_NoUseHeadLink->mo_Data, *this);
|
||||||
}
|
}
|
||||||
//for(TTypSize VL_Count=2; VL_Count<=AL_LinkSize; ++VL_Count)
|
//for(TTypSize VL_Count=2; VL_Count<=AL_LinkSize; ++VL_Count)
|
||||||
|
|
||||||
@ -353,8 +363,6 @@ namespace ZNsMain
|
|||||||
|
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
mo_TypeInit(VP_Temp->mo_Type);
|
|
||||||
|
|
||||||
if(VP_Temp==mp_NoUseTailLink)
|
if(VP_Temp==mp_NoUseTailLink)
|
||||||
{ break; }
|
{ break; }
|
||||||
|
|
||||||
@ -364,6 +372,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
APR_HeadLink = mp_NoUseHeadLink;
|
APR_HeadLink = mp_NoUseHeadLink;
|
||||||
|
|
||||||
|
// MakeLink() 에서 TypeInit::OnInit() 가 호출됨.
|
||||||
MakeLink( AL_LinkSize - ml_UseSize ,
|
MakeLink( AL_LinkSize - ml_UseSize ,
|
||||||
mp_NoUseTailLink->mp_NextLink,
|
mp_NoUseTailLink->mp_NextLink,
|
||||||
APR_TailLink
|
APR_TailLink
|
||||||
@ -415,7 +424,7 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
ml_UseSize -= AL_FarNum+1 ;
|
ml_UseSize -= AL_FarNum+1 ;
|
||||||
|
|
||||||
mp_NoUseHeadLink->mo_Type = AP_LinkOrgin->mo_Type;
|
mp_NoUseHeadLink->mo_Data = AP_LinkOrgin->mo_Data;
|
||||||
APR_HeadCopy = mp_NoUseHeadLink ;
|
APR_HeadCopy = mp_NoUseHeadLink ;
|
||||||
|
|
||||||
while(--AL_FarNum>=0)
|
while(--AL_FarNum>=0)
|
||||||
@ -423,7 +432,7 @@ namespace ZNsMain
|
|||||||
mp_NoUseHeadLink= mp_NoUseHeadLink->mp_NextLink ;
|
mp_NoUseHeadLink= mp_NoUseHeadLink->mp_NextLink ;
|
||||||
AP_LinkOrgin = AP_LinkOrgin->mp_NextLink ;
|
AP_LinkOrgin = AP_LinkOrgin->mp_NextLink ;
|
||||||
|
|
||||||
mp_NoUseHeadLink->mo_Type = AP_LinkOrgin->mo_Type;
|
mp_NoUseHeadLink->mo_Data = AP_LinkOrgin->mo_Data;
|
||||||
}
|
}
|
||||||
//while(--AL_FarNum>=0)
|
//while(--AL_FarNum>=0)
|
||||||
|
|
||||||
@ -446,7 +455,7 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
else // AL_FarNum > ml_UseSize
|
else // AL_FarNum > ml_UseSize
|
||||||
{
|
{
|
||||||
mp_NoUseHeadLink->mo_Type = AP_LinkOrgin->mo_Type ;
|
mp_NoUseHeadLink->mo_Data = AP_LinkOrgin->mo_Data ;
|
||||||
APR_HeadCopy = mp_NoUseHeadLink ;
|
APR_HeadCopy = mp_NoUseHeadLink ;
|
||||||
|
|
||||||
while(mp_NoUseHeadLink!=mp_NoUseTailLink)
|
while(mp_NoUseHeadLink!=mp_NoUseTailLink)
|
||||||
@ -454,7 +463,7 @@ namespace ZNsMain
|
|||||||
mp_NoUseHeadLink=mp_NoUseHeadLink->mp_NextLink;
|
mp_NoUseHeadLink=mp_NoUseHeadLink->mp_NextLink;
|
||||||
AP_LinkOrgin =AP_LinkOrgin ->mp_NextLink;
|
AP_LinkOrgin =AP_LinkOrgin ->mp_NextLink;
|
||||||
|
|
||||||
mp_NoUseHeadLink->mo_Type = AP_LinkOrgin->mo_Type;
|
mp_NoUseHeadLink->mo_Data = AP_LinkOrgin->mo_Data;
|
||||||
}
|
}
|
||||||
//while(mp_NoUseHeadLink!=mp_NoUseTailLink)
|
//while(mp_NoUseHeadLink!=mp_NoUseTailLink)
|
||||||
|
|
||||||
@ -487,11 +496,11 @@ namespace ZNsMain
|
|||||||
)
|
)
|
||||||
///////////////////////////////////////////////////*/
|
///////////////////////////////////////////////////*/
|
||||||
{
|
{
|
||||||
#ifdef _REENTRANT_MUTEX
|
#ifdef _REENTRANT_MUTEX
|
||||||
ZNsMain::ZCMutexSmallLock VO_ZCMutexSmallLock(mo_Mutex);
|
ZNsMain::ZCMutexSmallLock VO_ZCMutexSmallLock(mo_Mutex);
|
||||||
#endif //_REENTRANT_MUTEX
|
#endif //_REENTRANT_MUTEX
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
ZNsMain::ZCCheckAlloc::ZCAllowAlloc CAllowAllocObj;
|
ZNsMain::ZCCheckAlloc::ZCAllowAlloc CAllowAllocObj;
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
@ -505,6 +514,9 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
//if(APR_HeadLink==0)
|
//if(APR_HeadLink==0)
|
||||||
|
|
||||||
|
if(TypeInit::EUseInit>0)
|
||||||
|
TypeInit::OnInit(APR_HeadLink->mo_Data, *this);
|
||||||
|
|
||||||
ml_AllSize += AL_MakeSize;
|
ml_AllSize += AL_MakeSize;
|
||||||
|
|
||||||
ZCLink* VP_MakeLink = 0 ;
|
ZCLink* VP_MakeLink = 0 ;
|
||||||
@ -535,8 +547,11 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
//if(VP_MakeLink==0)
|
//if(VP_MakeLink==0)
|
||||||
|
|
||||||
|
if(TypeInit::EUseInit>0)
|
||||||
|
TypeInit::OnInit(VP_MakeLink->mo_Data, *this);
|
||||||
|
|
||||||
VP_TempLink->mp_NextLink=VP_MakeLink;
|
VP_TempLink->mp_NextLink=VP_MakeLink;
|
||||||
VP_TempLink=VP_MakeLink;
|
VP_TempLink=VP_MakeLink ;
|
||||||
}
|
}
|
||||||
//while(--AL_MakeSize>0)
|
//while(--AL_MakeSize>0)
|
||||||
|
|
||||||
@ -608,7 +623,7 @@ namespace ZNsMain
|
|||||||
bool VB_IsHeapOver= false;
|
bool VB_IsHeapOver= false;
|
||||||
|
|
||||||
VP_TempLink = \
|
VP_TempLink = \
|
||||||
VP_MakeLink = new ZCLink(AP_LinkOrgin->mo_Type);
|
VP_MakeLink = new ZCLink(AP_LinkOrgin->mo_Data);
|
||||||
|
|
||||||
ml_AllSize += AL_FarNum+1 ;
|
ml_AllSize += AL_FarNum+1 ;
|
||||||
|
|
||||||
@ -628,7 +643,7 @@ namespace ZNsMain
|
|||||||
while(--AL_FarNum >= 0)
|
while(--AL_FarNum >= 0)
|
||||||
{
|
{
|
||||||
AP_LinkOrgin= AP_LinkOrgin->mp_NextLink;
|
AP_LinkOrgin= AP_LinkOrgin->mp_NextLink;
|
||||||
VP_MakeLink = new ZCLink(AP_LinkOrgin->mo_Type);
|
VP_MakeLink = new ZCLink(AP_LinkOrgin->mo_Data);
|
||||||
|
|
||||||
if(VP_MakeLink==0)
|
if(VP_MakeLink==0)
|
||||||
{
|
{
|
||||||
@ -697,15 +712,33 @@ namespace ZNsMain
|
|||||||
mp_NoUseTailLink = AP_Link;
|
mp_NoUseTailLink = AP_Link;
|
||||||
}
|
}
|
||||||
//else
|
//else
|
||||||
|
|
||||||
|
if(TypeInit::EUseFini>0)
|
||||||
|
TypeInit::OnFini(AP_Link->mo_Data, *this);
|
||||||
}
|
}
|
||||||
//void ReceiveLink(ZCLink* AP_Link)
|
//void ReceiveLink(ZCLink* AP_Link)
|
||||||
|
|
||||||
void ReceiveLink(ZCLink* AP_HeadLink,ZCLink* AP_TailLink, TTypSize AL_Count)
|
void ReceiveLink(ZCLink* AP_HeadLink, ZCLink* AP_TailLink, TTypSize AL_Count)
|
||||||
{
|
{
|
||||||
#ifdef _REENTRANT_MUTEX
|
#ifdef _REENTRANT_MUTEX
|
||||||
ZNsMain::ZCMutexSmallLock VO_ZCMutexSmallLock(mo_Mutex);
|
ZNsMain::ZCMutexSmallLock VO_ZCMutexSmallLock(mo_Mutex);
|
||||||
#endif //_REENTRANT_MUTEX
|
#endif //_REENTRANT_MUTEX
|
||||||
|
|
||||||
|
if(TypeInit::EUseFini>0)
|
||||||
|
{
|
||||||
|
ZCLink* VP_NowLink = AP_HeadLink;
|
||||||
|
|
||||||
|
__for1(TypeSize, i, AL_Count)
|
||||||
|
{
|
||||||
|
TypeInit::OnFini(VP_NowLink->mo_Data, *this) ;
|
||||||
|
|
||||||
|
VP_NowLink = VP_NowLink->mp_NextLink;
|
||||||
|
}/*
|
||||||
|
__for1(TypeSize, i, AL_Count)*/
|
||||||
|
}/*
|
||||||
|
if(TypeInit::EUseFini>0)*/
|
||||||
|
|
||||||
|
|
||||||
if(ml_UseSize==0)
|
if(ml_UseSize==0)
|
||||||
{
|
{
|
||||||
mp_NoUseHeadLink = AP_HeadLink ;
|
mp_NoUseHeadLink = AP_HeadLink ;
|
||||||
@ -839,12 +872,6 @@ namespace ZNsMain
|
|||||||
}
|
}
|
||||||
//long GetMemSize() const
|
//long GetMemSize() const
|
||||||
|
|
||||||
TypeInit& GetTypeInit()
|
|
||||||
{
|
|
||||||
return mo_TypeInit;
|
|
||||||
}
|
|
||||||
//TypeInit& GetTypeInit()
|
|
||||||
|
|
||||||
//public:
|
//public:
|
||||||
};
|
};
|
||||||
//class ZCLinkHeap
|
//class ZCLinkHeap
|
||||||
@ -1183,7 +1210,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
return GetLinkPtr(AL_Index)->mo_Type;
|
return GetLinkPtr(AL_Index)->mo_Data;
|
||||||
}/*
|
}/*
|
||||||
TType& operator[](TTypSize AL_Index)*/
|
TType& operator[](TTypSize AL_Index)*/
|
||||||
|
|
||||||
@ -1204,17 +1231,17 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
return GetLinkPtr(AL_Index)->mo_Type;
|
return GetLinkPtr(AL_Index)->mo_Data;
|
||||||
}
|
}
|
||||||
//const TType& operator[](TTypSize AL_Index) const
|
//const TType& operator[](TTypSize AL_Index) const
|
||||||
|
|
||||||
|
|
||||||
operator TType&(){return AddTailDefault()->mo_Type;}
|
operator TType&(){return AddTailDefault()->mo_Data;}
|
||||||
|
|
||||||
|
|
||||||
TType& operator()()
|
TType& operator()()
|
||||||
{
|
{
|
||||||
return AddTailDefault()->mo_Type;
|
return AddTailDefault()->mo_Data;
|
||||||
}/*
|
}/*
|
||||||
TType& operator()()*/
|
TType& operator()()*/
|
||||||
|
|
||||||
@ -1226,11 +1253,11 @@ namespace ZNsMain
|
|||||||
#if(_CODE_NEW_)
|
#if(_CODE_NEW_)
|
||||||
if(TypeMoveObj::ZEUseMoveObj>0) ////////////////////
|
if(TypeMoveObj::ZEUseMoveObj>0) ////////////////////
|
||||||
{
|
{
|
||||||
TypeMoveObj::Exec(VP_AddLink->mo_Type, AR_Type);
|
TypeMoveObj::Exec(VP_AddLink->mo_Data, AR_Type);
|
||||||
}
|
}
|
||||||
else ///////////////////////////////////////////////
|
else ///////////////////////////////////////////////
|
||||||
#endif
|
#endif
|
||||||
VP_AddLink->mo_Type= AR_Type ;
|
VP_AddLink->mo_Data= AR_Type ;
|
||||||
|
|
||||||
if(++ml_Size==1) // ml_Size==0
|
if(++ml_Size==1) // ml_Size==0
|
||||||
{
|
{
|
||||||
@ -1274,11 +1301,11 @@ namespace ZNsMain
|
|||||||
#if(_CODE_NEW_)
|
#if(_CODE_NEW_)
|
||||||
if(TypeMoveObj::ZEUseMoveObj>0) ////////////////////
|
if(TypeMoveObj::ZEUseMoveObj>0) ////////////////////
|
||||||
{
|
{
|
||||||
TypeMoveObj::Exec(VP_AddLink->mo_Type, AR_Type);
|
TypeMoveObj::Exec(VP_AddLink->mo_Data, AR_Type);
|
||||||
}
|
}
|
||||||
else ///////////////////////////////////////////////
|
else ///////////////////////////////////////////////
|
||||||
#endif
|
#endif
|
||||||
VP_AddLink->mo_Type= AR_Type ;
|
VP_AddLink->mo_Data= AR_Type ;
|
||||||
|
|
||||||
if(++ml_Size==1) // ml_Size==0
|
if(++ml_Size==1) // ml_Size==0
|
||||||
{
|
{
|
||||||
@ -1348,8 +1375,8 @@ namespace ZNsMain
|
|||||||
ZCLink* GetTailIterEasy (){return mp_TailLink;}
|
ZCLink* GetTailIterEasy (){return mp_TailLink;}
|
||||||
IterEasyID GetTailIterEasyID(){return (IterEasyID)mp_TailLink;}
|
IterEasyID GetTailIterEasyID(){return (IterEasyID)mp_TailLink;}
|
||||||
|
|
||||||
TType& front(){return mp_HeadLink->mo_Type;}
|
TType& front(){return mp_HeadLink->mo_Data;}
|
||||||
TType& back (){return mp_TailLink->mo_Type;}
|
TType& back (){return mp_TailLink->mo_Data;}
|
||||||
|
|
||||||
|
|
||||||
const ZCLink* GetHeadLinkPtr () const{return mp_HeadLink;}
|
const ZCLink* GetHeadLinkPtr () const{return mp_HeadLink;}
|
||||||
@ -1360,8 +1387,8 @@ namespace ZNsMain
|
|||||||
const ZCLink* GetTailIterEasy () const{return mp_TailLink;}
|
const ZCLink* GetTailIterEasy () const{return mp_TailLink;}
|
||||||
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)mp_TailLink;}
|
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)mp_TailLink;}
|
||||||
|
|
||||||
const TType& front() const{return mp_HeadLink->mo_Type;}
|
const TType& front() const{return mp_HeadLink->mo_Data;}
|
||||||
const TType& back () const{return mp_TailLink->mo_Type;}
|
const TType& back () const{return mp_TailLink->mo_Data;}
|
||||||
|
|
||||||
|
|
||||||
void pop_back(TypeArg AR_Type)
|
void pop_back(TypeArg AR_Type)
|
||||||
@ -1394,7 +1421,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
return mp_HeadLink->mo_Type;
|
return mp_HeadLink->mo_Data;
|
||||||
}/*
|
}/*
|
||||||
TType& GetHeadData()*/
|
TType& GetHeadData()*/
|
||||||
|
|
||||||
@ -1415,7 +1442,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
return mp_HeadLink->mo_Type;
|
return mp_HeadLink->mo_Data;
|
||||||
}/*
|
}/*
|
||||||
const TType& GetHeadData() const*/
|
const TType& GetHeadData() const*/
|
||||||
|
|
||||||
@ -1437,7 +1464,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
return mp_TailLink->mo_Type ;
|
return mp_TailLink->mo_Data ;
|
||||||
}/*
|
}/*
|
||||||
TType& GetTailData()*/
|
TType& GetTailData()*/
|
||||||
|
|
||||||
@ -1458,7 +1485,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
return mp_TailLink->mo_Type ;
|
return mp_TailLink->mo_Data ;
|
||||||
}/*
|
}/*
|
||||||
const TType& GetTailData() const*/
|
const TType& GetTailData() const*/
|
||||||
|
|
||||||
@ -1480,7 +1507,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
return GetLinkPtr(AL_Index)->mo_Type;
|
return GetLinkPtr(AL_Index)->mo_Data;
|
||||||
}/*
|
}/*
|
||||||
TType& GetData(TTypSize AL_Index)*/
|
TType& GetData(TTypSize AL_Index)*/
|
||||||
|
|
||||||
@ -1501,7 +1528,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
#endif //_DEBUG
|
#endif //_DEBUG
|
||||||
|
|
||||||
return GetLinkPtr(AL_Index)->mo_Type;
|
return GetLinkPtr(AL_Index)->mo_Data;
|
||||||
}/*
|
}/*
|
||||||
TType GetData(TTypSize AL_Index) const*/
|
TType GetData(TTypSize AL_Index) const*/
|
||||||
|
|
||||||
@ -1685,8 +1712,15 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(AL_DelSize>ml_Size) AL_DelSize=ml_Size;
|
if(AL_DelSize>ml_Size) AL_DelSize=ml_Size;
|
||||||
|
|
||||||
ZtCSimList VO_StoreList; CutLink(
|
ZtCSimList VO_StoreList; CutLink /////////////
|
||||||
0, mp_HeadLink, 1, mp_HeadLink->GetNextPtr(AL_DelSize-1), AL_DelSize , VO_StoreList).DeleteAll();
|
(
|
||||||
|
0, mp_HeadLink
|
||||||
|
, 1, mp_HeadLink->GetNextPtr(AL_DelSize-1)
|
||||||
|
, AL_DelSize
|
||||||
|
, VO_StoreList
|
||||||
|
)
|
||||||
|
.DeleteAll();
|
||||||
|
////////////////////////////////////////////////
|
||||||
}/*
|
}/*
|
||||||
void DeleteHead(TTypSize AL_DelSize)*/
|
void DeleteHead(TTypSize AL_DelSize)*/
|
||||||
|
|
||||||
@ -1884,13 +1918,13 @@ namespace ZNsMain
|
|||||||
do //////
|
do //////
|
||||||
{
|
{
|
||||||
if(VP_TempLink==AP_pSearchLink)
|
if(VP_TempLink==AP_pSearchLink)
|
||||||
{return VL_FindIndex;}
|
{ return VL_FindIndex; }
|
||||||
/*+++++++++++++++++++++++++++*/
|
/*+++++++++++++++++++++++++++*/
|
||||||
|
|
||||||
if(VL_FindIndex==ml_Size){return 0; }
|
if(VL_FindIndex==ml_Size){return 0; }
|
||||||
|
|
||||||
VP_TempLink= VP_TempLink->mp_NextLink ;
|
VP_TempLink = VP_TempLink->mp_NextLink;
|
||||||
++VL_FindIndex ;
|
VL_FindIndex= VL_FindIndex + 1 ;
|
||||||
}
|
}
|
||||||
while(true);
|
while(true);
|
||||||
}/*
|
}/*
|
||||||
@ -1917,8 +1951,8 @@ namespace ZNsMain
|
|||||||
|
|
||||||
if(VL_FindIndex==ml_Size){return 0; }
|
if(VL_FindIndex==ml_Size){return 0; }
|
||||||
|
|
||||||
VP_TempLink=VP_TempLink->mp_NextLink;
|
VP_TempLink = VP_TempLink->mp_NextLink;
|
||||||
++VL_FindIndex ;
|
VL_FindIndex= VL_FindIndex + 1 ;
|
||||||
}
|
}
|
||||||
while(true);
|
while(true);
|
||||||
}/*
|
}/*
|
||||||
@ -2026,7 +2060,7 @@ namespace ZNsMain
|
|||||||
__for1(TTypSize, VL_Index, ml_Size)
|
__for1(TTypSize, VL_Index, ml_Size)
|
||||||
{
|
{
|
||||||
ZtCTypeData<TFunctor>::
|
ZtCTypeData<TFunctor>::
|
||||||
GetObjRef(AO_Functor)(VP_LoopLink->mo_Type);
|
GetObjRef(AO_Functor)(VP_LoopLink->mo_Data);
|
||||||
|
|
||||||
VP_LoopLink = VP_LoopLink->mp_NextLink;
|
VP_LoopLink = VP_LoopLink->mp_NextLink;
|
||||||
}/*
|
}/*
|
||||||
@ -2047,7 +2081,7 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
||||||
(
|
(
|
||||||
VP_LoopLink->mo_Type, ZCCheckRef::PassData(AO_TypeHelp)
|
VP_LoopLink->mo_Data, ZCCheckRef::PassData(AO_TypeHelp)
|
||||||
);
|
);
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
|
|
||||||
@ -2072,7 +2106,7 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
||||||
(
|
(
|
||||||
VP_LoopLink->mo_Type ,
|
VP_LoopLink->mo_Data ,
|
||||||
ZCCheckRef1::PassData(AO_TypeHelp1),
|
ZCCheckRef1::PassData(AO_TypeHelp1),
|
||||||
ZCCheckRef2::PassData(AO_TypeHelp2)
|
ZCCheckRef2::PassData(AO_TypeHelp2)
|
||||||
);
|
);
|
||||||
@ -2109,7 +2143,7 @@ namespace ZNsMain
|
|||||||
VP_TempLink=VP_TempLink->mp_NextLink;
|
VP_TempLink=VP_TempLink->mp_NextLink;
|
||||||
|
|
||||||
const bool CB_IsTrue = ZtCTypeData<TFunctor>::
|
const bool CB_IsTrue = ZtCTypeData<TFunctor>::
|
||||||
GetObjRef(AO_Functor)( VP_TempBefore->mo_Type );
|
GetObjRef(AO_Functor)( VP_TempBefore->mo_Data );
|
||||||
|
|
||||||
if(CB_IsTrue)
|
if(CB_IsTrue)
|
||||||
{
|
{
|
||||||
@ -2322,11 +2356,11 @@ namespace ZNsMain
|
|||||||
};/*
|
};/*
|
||||||
template ###########################################
|
template ###########################################
|
||||||
<
|
<
|
||||||
typename TType ,
|
typename TType ,
|
||||||
typename TTypArgu =const TType&,
|
typename TTypArgu = const TType& ,
|
||||||
typename TTypCAlloc=ZCAllocator ,
|
typename TTypCAlloc= ZCAllocator ,
|
||||||
typename TTypCInit =ZCInit ,
|
typename TTypCInit = ZtCInit<TType> ,
|
||||||
typename TTypSize =ZTypLong ,
|
typename TTypSize = ZTypLong ,
|
||||||
typename TMoveObj = ZNsMain::
|
typename TMoveObj = ZNsMain::
|
||||||
ZtCMoveObj<TType, TTypArgu, true>
|
ZtCMoveObj<TType, TTypArgu, true>
|
||||||
>
|
>
|
||||||
|
@ -122,8 +122,7 @@ namespace ZNsMain
|
|||||||
namespace ZNsType*/
|
namespace ZNsType*/
|
||||||
|
|
||||||
|
|
||||||
template< typename TType ,
|
template< typename TType ,
|
||||||
typename TTypeInit =ZNsMain::ZtCInit<TType>,
|
|
||||||
typename TTypeTreeData=ZNsType::ZtCTypeTreeData<long>
|
typename TTypeTreeData=ZNsType::ZtCTypeTreeData<long>
|
||||||
>
|
>
|
||||||
class ZtCTreeData /*###########################################*/
|
class ZtCTreeData /*###########################################*/
|
||||||
@ -131,9 +130,8 @@ namespace ZNsMain
|
|||||||
public:
|
public:
|
||||||
class ZCNode1; class ZCNode2; class ZCNodeInfo;
|
class ZCNode1; class ZCNode2; class ZCNodeInfo;
|
||||||
public:
|
public:
|
||||||
typedef TType TypeData ;
|
typedef TType TypeData ;
|
||||||
typedef TTypeInit ZCTypeInit ;
|
typedef TTypeTreeData TypeTreeData;
|
||||||
typedef TTypeTreeData ZCTypeTreeData;
|
|
||||||
public:
|
public:
|
||||||
typedef typename TTypeTreeData::TypeSize TypeSize ;
|
typedef typename TTypeTreeData::TypeSize TypeSize ;
|
||||||
typedef typename TTypeTreeData::template
|
typedef typename TTypeTreeData::template
|
||||||
@ -148,7 +146,8 @@ namespace ZNsMain
|
|||||||
typedef typename ZCNodeList::iterator IterOfNode;
|
typedef typename ZCNodeList::iterator IterOfNode;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
class ZCNode1 : public ZCTypeInit
|
|
||||||
|
class ZCNode1 :
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
friend class ZCNodeInfo;
|
friend class ZCNodeInfo;
|
||||||
@ -160,13 +159,13 @@ namespace ZNsMain
|
|||||||
|
|
||||||
ZCNode1()
|
ZCNode1()
|
||||||
{
|
{
|
||||||
mp_HighNode=0; this->ZCTypeInit::OnInit(mo_TypeData);
|
mp_HighNode=0;
|
||||||
}/*
|
}/*
|
||||||
ZCNode1()*/
|
ZCNode1()*/
|
||||||
|
|
||||||
~ZCNode1()
|
~ZCNode1()
|
||||||
{
|
{
|
||||||
mp_HighNode=0; this->ZCTypeInit::OnFini(mo_TypeData);
|
mp_HighNode=0;
|
||||||
}/*
|
}/*
|
||||||
~ZCNode1()*/
|
~ZCNode1()*/
|
||||||
|
|
||||||
@ -325,7 +324,8 @@ namespace ZNsMain
|
|||||||
};/*
|
};/*
|
||||||
class ZCNode1*/
|
class ZCNode1*/
|
||||||
|
|
||||||
class ZCNode2 : public ZCTypeInit
|
|
||||||
|
class ZCNode2
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
friend class ZCNodeInfo;
|
friend class ZCNodeInfo;
|
||||||
@ -337,12 +337,12 @@ namespace ZNsMain
|
|||||||
|
|
||||||
ZCNode2()
|
ZCNode2()
|
||||||
{
|
{
|
||||||
mp_HighNode=0; this->ZCTypeInit::OnInit(mo_TypeData);
|
mp_HighNode=0;
|
||||||
}/*
|
}/*
|
||||||
ZCNode2()*/
|
ZCNode2()*/
|
||||||
~ZCNode2()
|
~ZCNode2()
|
||||||
{
|
{
|
||||||
mp_HighNode=0; this->ZCTypeInit::OnFini(mo_TypeData);
|
mp_HighNode=0;
|
||||||
}/*
|
}/*
|
||||||
~ZCNode2()*/
|
~ZCNode2()*/
|
||||||
|
|
||||||
@ -458,8 +458,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template< typename TType ,
|
template< typename TType ,
|
||||||
typename TTypeInit =ZNsMain::ZtCInit<TType>,
|
|
||||||
typename TTypeTreeData=ZNsType::ZtCTypeTreeData<long>
|
typename TTypeTreeData=ZNsType::ZtCTypeTreeData<long>
|
||||||
>
|
>
|
||||||
class ZtCTreeData #############################################*/
|
class ZtCTreeData #############################################*/
|
||||||
|
Reference in New Issue
Block a user