commit 2025-10-17 19:13 add IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp) & IterTail() in ZtCTypeChain : ZCppMain/ZMainHead.H
This commit is contained in:
@ -3271,6 +3271,51 @@ namespace ZNsMain
|
||||
AO_CView.template OnMeetType<TypeChainNow>();
|
||||
}/*
|
||||
static void IterTail(TViewChain AO_CView)*/
|
||||
|
||||
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||
|
||||
template<typename TTypeHelp> static void
|
||||
IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp)
|
||||
{
|
||||
typedef ZNsMain::
|
||||
ZtCCheckRef<TTypeHelp> ZCCheckRef;
|
||||
typedef ZCCheckRef::TypeRaw TypeRaw ;
|
||||
|
||||
AO_CView.template
|
||||
OnMeetType<TypeChainNow, TypeRaw>
|
||||
( ZCCheckRef::PassData(AO_TypeHelp) ) ;
|
||||
|
||||
if(TypeChainNow::ZEBoolNext>0)
|
||||
{
|
||||
TypeChainNext::template ZtCIterChain<TViewChain>
|
||||
::template IterHead<TTypeHelp>(AO_CView, AO_TypeHelp) ;
|
||||
}/*
|
||||
if(TypeChainNow::ZEBoolNext>0)*/
|
||||
}/*
|
||||
template<typename TTypeHelp> static void
|
||||
IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/
|
||||
|
||||
template<typename TTypeHelp> static void
|
||||
IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp)
|
||||
{
|
||||
typedef ZNsMain::
|
||||
ZtCCheckRef<TTypeHelp> ZCCheckRef;
|
||||
typedef ZCCheckRef::TypeRaw TypeRaw ;
|
||||
|
||||
if(TypeChainNow::ZEBoolNext>0)
|
||||
{
|
||||
TypeChainNext::template ZtCIterChain<TViewChain>
|
||||
::template IterTail<TTypeHelp>(AO_CView, AO_TypeHelp) ;
|
||||
}/*
|
||||
if(TypeChainNow::ZEBoolNext>0)*/
|
||||
|
||||
AO_CView.template
|
||||
OnMeetType<TypeChainNow, TypeRaw>
|
||||
( ZCCheckRef::PassData(AO_TypeHelp) ) ;
|
||||
}/*
|
||||
template<typename TTypeHelp> static void
|
||||
IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
template<typename TViewChain> class ZtCIterChain*/
|
||||
@ -3309,6 +3354,36 @@ namespace ZNsMain
|
||||
{ AO_CView.template OnMeetType<TypeChainNow>(); }
|
||||
static void IterTail(TViewChain AO_CView)
|
||||
{ AO_CView.template OnMeetType<TypeChainNow>(); }
|
||||
|
||||
template<typename TTypeHelp> static void
|
||||
IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp)
|
||||
{
|
||||
typedef ZNsMain::
|
||||
ZtCCheckRef<TTypeHelp> ZCCheckRef ;
|
||||
typedef ZCCheckRef::TypeRaw TypeRaw ;
|
||||
|
||||
AO_CView.template OnMeetType<TypeChainNow, TypeRaw>
|
||||
( ZCCheckRef::PassData(AO_TypeHelp) );
|
||||
}/*
|
||||
template<typename TTypeHelp> static void
|
||||
IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/
|
||||
|
||||
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||
|
||||
template<typename TTypeHelp> static void
|
||||
IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp)
|
||||
{
|
||||
typedef ZNsMain::
|
||||
ZtCCheckRef<TTypeHelp> ZCCheckRef;
|
||||
typedef ZCCheckRef::TypeRaw TypeRaw ;
|
||||
|
||||
AO_CView.template
|
||||
OnMeetType<TypeChainNow, TypeRaw>
|
||||
( ZCCheckRef::PassData(AO_TypeHelp) ) ;
|
||||
}/*
|
||||
template<typename TTypeHelp> static void
|
||||
IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
template<typename TViewChain> class ZtCIterChain*/
|
||||
@ -3351,6 +3426,70 @@ namespace ZNsMain
|
||||
void ZftIterTmplChainTail(TTypeView AO_View)
|
||||
*/
|
||||
|
||||
|
||||
template
|
||||
<typename TTmplChain, typename TTypeView, typename TTypeHelp>
|
||||
void ZftIterTmplChainHead
|
||||
(TTypeView AO_View, TTypeHelp AO_TypeHelp)
|
||||
/*#############################################################*/
|
||||
{
|
||||
typedef ZNsMain::
|
||||
ZtCCheckRef<TTypeHelp> ZCCheckRef ;
|
||||
typedef ZCCheckRef::TypeRaw TypeRaw ;
|
||||
|
||||
AO_View.template OnMeetType<TTmplChain, TypeRaw>
|
||||
( ZCCheckRef::PassData(AO_TypeHelp) );
|
||||
|
||||
if(TTmplChain::ZEBoolNext>0)
|
||||
{
|
||||
typedef typename
|
||||
TTmplChain::TypeChainNext TypeChainNext;
|
||||
|
||||
ZftIterTmplChainHead
|
||||
<TypeChainNext, TTypeView, TTypeHelp>
|
||||
(AO_View, AO_TypeHelp);
|
||||
}/*
|
||||
if(TTmplChain::ZEBoolNext>0)*/
|
||||
}/*
|
||||
template
|
||||
<typename TTmplChain, typename TTypeView, typename TTypeHelp>
|
||||
void ZftIterTmplChainHead
|
||||
(TTypeView AO_View, TTypeHelp AO_TypeHelp)
|
||||
###############################################################*/
|
||||
|
||||
|
||||
template
|
||||
<typename TTmplChain, typename TTypeView, typename TTypeHelp>
|
||||
void ZftIterTmplChainTail
|
||||
(TTypeView AO_View, TTypeHelp AO_TypeHelp)
|
||||
/*#############################################################*/
|
||||
{
|
||||
typedef ZNsMain::
|
||||
ZtCCheckRef<TTypeHelp> ZCCheckRef ;
|
||||
typedef ZCCheckRef::TypeRaw TypeRaw ;
|
||||
|
||||
if(TTmplChain::ZEBoolNext>0)
|
||||
{
|
||||
typedef typename
|
||||
TTmplChain::TypeChainNext TypeChainNext;
|
||||
|
||||
ZftIterTmplChainTail
|
||||
<TypeChainNext, TTypeView, TTypeHelp>
|
||||
(AO_View, AO_TypeHelp);
|
||||
}/*
|
||||
if(TTmplChain::ZEBoolNext>0)*/
|
||||
|
||||
AO_View.template OnMeetType<TTmplChain, TypeRaw>
|
||||
( ZCCheckRef::PassData(AO_TypeHelp) );
|
||||
}/*
|
||||
template
|
||||
<typename TTmplChain, typename TTypeView, typename TTypeHelp>
|
||||
void ZftIterTmplChainTail
|
||||
(TTypeView AO_View, TTypeHelp AO_TypeHelp)
|
||||
###############################################################*/
|
||||
|
||||
|
||||
|
||||
/*////////////////////////////////////////////////////////////////
|
||||
|
||||
■ ZtCTypeChain 예제.
|
||||
@ -3367,6 +3506,10 @@ namespace ZNsMain
|
||||
{
|
||||
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||
}
|
||||
template<typename TTypChain, typename TTypHelp> void OnMeetType(TTypHelp& AR_CallNo)
|
||||
{
|
||||
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||
}
|
||||
};
|
||||
|
||||
int main()
|
||||
@ -3381,8 +3524,9 @@ namespace ZNsMain
|
||||
ZCEmpty > > >
|
||||
> ZCTypeChain; ZCTypeView VO_ZCTypeView;
|
||||
|
||||
cout<<"temp chain size = "<<ZCTypeChain::Size()<<endl;
|
||||
int VI_CallNo = 0;
|
||||
|
||||
cout<<"temp chain size = "<<ZCTypeChain::Size()<<endl;
|
||||
|
||||
ZftIterTmplChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
|
||||
|
||||
@ -3391,6 +3535,19 @@ namespace ZNsMain
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
|
||||
|
||||
ZftIterTmplChainHead<ZCTypeChain, ZCTypeView&, int&>
|
||||
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||
cout<<"************************************"<<endl;
|
||||
ZftIterTmplChainTail<ZCTypeChain, ZCTypeView&, int&>
|
||||
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::
|
||||
IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::
|
||||
IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user