commit 2025-09-28 17:19 add template parameter 'bool TTypebUseCRTP' inZtCTypeNowCRTP : ZCppMain/ZMainHead.H
This commit is contained in:
@ -67,7 +67,6 @@ namespace ZNsMain
|
||||
{cout<<"#6 Value="<<ArgiValue<<", HelpObj Ptr="<<&AR_CHelpObj<<" With CHelpObj Half Ref"<<endl;}
|
||||
};
|
||||
|
||||
|
||||
public:
|
||||
|
||||
typedef ZtCStringBase<char> CStringBase ;
|
||||
@ -84,6 +83,159 @@ namespace ZNsMain
|
||||
typedef ZtCBaseList
|
||||
<CStringBase, CStringBaseC&> CStringList2 ;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
class ZCBaseListEx10 : public ZtCBaseList
|
||||
<
|
||||
CStringBase
|
||||
, CStringBase&
|
||||
, ZCAllocator
|
||||
, ZTypLong
|
||||
, ZNsMain::ZtCMoveObj <CStringBase, CStringBase&, true>
|
||||
, ZNsType::ZtCTypeCRTP<ZCBaseListEx10, true>
|
||||
>
|
||||
{
|
||||
public :
|
||||
|
||||
template //////////////////////////////////////////////////////////////////
|
||||
<
|
||||
typename TType , typename TTypArgu ,
|
||||
typename TTypeAlloc , typename TTypSize ,
|
||||
typename TMoveObj , typename TTypeCRTP
|
||||
>
|
||||
friend class ZtCBaseList; /*#############################################*/
|
||||
|
||||
typedef ZtCBaseList ///////////////////////////////////////////////////////
|
||||
<
|
||||
CStringBase
|
||||
, CStringBase&
|
||||
, ZCAllocator
|
||||
, ZTypLong
|
||||
, ZNsMain::ZtCMoveObj <CStringBase, CStringBase&, true>
|
||||
, ZNsType::ZtCTypeCRTP<ZCBaseListEx10, true>
|
||||
>
|
||||
ZCBaseList; ///////////////////////////////////////////////////////////////
|
||||
|
||||
friend class ZtCBaseList //////////////////////////////////////////////////
|
||||
<
|
||||
CStringBase
|
||||
, CStringBase&
|
||||
, ZCAllocator
|
||||
, ZTypLong
|
||||
, ZNsMain::ZtCMoveObj <CStringBase, CStringBase&, true>
|
||||
, ZNsType::ZtCTypeCRTP<ZCBaseListEx10, true>
|
||||
>;
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef typename ZCBaseList::ZCLink ZCLink;
|
||||
|
||||
private:
|
||||
|
||||
_VT_ ZCLink* NewLink()
|
||||
{
|
||||
cout<<"** ZCBaseListEx10 : NewLink()"<<endl;
|
||||
|
||||
return new ZCLink;
|
||||
}/*
|
||||
_VT_ ZCLink* NewLink()*/
|
||||
|
||||
_VT_ ZCLink* NewLink(CStringBase& AO_ArgData)
|
||||
{
|
||||
cout<<"** ZCBaseListEx10 : NewLink(TypeArg)"<<endl;
|
||||
|
||||
return new ZCLink(AO_ArgData);
|
||||
}/*
|
||||
_VT_ ZCLink* NewLink(CStringBase& AO_ArgData)*/
|
||||
|
||||
_VT_ void DelLink(ZCLink* AP_DelLink)
|
||||
{
|
||||
cout<<"** ZCBaseListEx10 : DelLink(ZCLink*)"<<endl;
|
||||
|
||||
delete AP_DelLink;
|
||||
}/*
|
||||
_VT_ void DelLink(ZCLink* AP_DelLink)*/
|
||||
|
||||
private:
|
||||
};/*
|
||||
class ZCBaseListEx10 : public ZtCBaseList*/
|
||||
|
||||
|
||||
class ZCBaseListEx11 : public ZtCBaseList
|
||||
<
|
||||
CStringBase
|
||||
, CStringBase&
|
||||
, ZCAllocator
|
||||
, ZTypLong
|
||||
, ZNsMain::ZtCMoveObj <CStringBase, CStringBase&, true>
|
||||
, ZNsType::ZtCTypeCRTP<ZCBaseListEx11, false>
|
||||
>
|
||||
{
|
||||
public :
|
||||
|
||||
template //////////////////////////////////////////////////////////////////
|
||||
<
|
||||
typename TType , typename TTypArgu ,
|
||||
typename TTypeAlloc , typename TTypSize ,
|
||||
typename TMoveObj , typename TTypeCRTP
|
||||
>
|
||||
friend class ZtCBaseList; /*#############################################*/
|
||||
|
||||
typedef ZtCBaseList ///////////////////////////////////////////////////////
|
||||
<
|
||||
CStringBase
|
||||
, CStringBase&
|
||||
, ZCAllocator
|
||||
, ZTypLong
|
||||
, ZNsMain::ZtCMoveObj <CStringBase, CStringBase&, true>
|
||||
, ZNsType::ZtCTypeCRTP<ZCBaseListEx11, false>
|
||||
>
|
||||
ZCBaseList; ///////////////////////////////////////////////////////////////
|
||||
|
||||
friend class ZtCBaseList //////////////////////////////////////////////////
|
||||
<
|
||||
CStringBase
|
||||
, CStringBase&
|
||||
, ZCAllocator
|
||||
, ZTypLong
|
||||
, ZNsMain::ZtCMoveObj <CStringBase, CStringBase&, true>
|
||||
, ZNsType::ZtCTypeCRTP<ZCBaseListEx11, false>
|
||||
>;
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
typedef typename ZCBaseList::ZCLink ZCLink;
|
||||
|
||||
private:
|
||||
|
||||
_VT_ ZCLink* NewLink()
|
||||
{
|
||||
cout<<"** ZCBaseListEx11 : NewLink()"<<endl;
|
||||
|
||||
return new ZCLink;
|
||||
}/*
|
||||
_VT_ ZCLink* NewLink()*/
|
||||
|
||||
_VT_ ZCLink* NewLink(CStringBase& AO_ArgData)
|
||||
{
|
||||
cout<<"** ZCBaseListEx11 : NewLink(TypeArg)"<<endl;
|
||||
|
||||
return new ZCLink(AO_ArgData);
|
||||
}/*
|
||||
_VT_ ZCLink* NewLink(CStringBase& AO_ArgData)*/
|
||||
|
||||
_VT_ void DelLink(ZCLink* AP_DelLink)
|
||||
{
|
||||
cout<<"** ZCBaseListEx11 : DelLink(ZCLink*)"<<endl;
|
||||
|
||||
delete AP_DelLink;
|
||||
}/*
|
||||
_VT_ void DelLink(ZCLink* AP_DelLink)*/
|
||||
|
||||
private:
|
||||
};/*
|
||||
class ZCBaseListEx11 : public ZtCBaseList*/
|
||||
|
||||
|
||||
|
||||
static void ShowDataInNode(const CStringBase& AR_Data)
|
||||
{
|
||||
@ -149,6 +301,16 @@ namespace ZNsMain
|
||||
VO_CIntList.IterElement(StFunctor5::ShowElement, ZftMCP(VO_CHelpObj), ZftMCP(VO_CHelpObj) );
|
||||
VO_CIntList.IterElement(StFunctor6::ShowElement, ZftMCP(VO_CHelpObj), VO_CHelpObj );
|
||||
|
||||
|
||||
ZCBaseListEx10 VO_ZCBaseListEx10;
|
||||
ZCBaseListEx11 VO_ZCBaseListEx11;
|
||||
|
||||
VO_ZCBaseListEx10.AddTail(VO_CStringBase("data ex 11-1"));
|
||||
VO_ZCBaseListEx10.AddTail(VO_CStringBase("data ex 11-2"));
|
||||
|
||||
VO_ZCBaseListEx11.AddTail(VO_CStringBase("data ex 11-1"));
|
||||
VO_ZCBaseListEx11.AddTail(VO_CStringBase("data ex 11-2"));
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||
|
Reference in New Issue
Block a user