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>();
|
AO_CView.template OnMeetType<TypeChainNow>();
|
||||||
}/*
|
}/*
|
||||||
static void IterTail(TViewChain AO_CView)*/
|
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:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template<typename TViewChain> class ZtCIterChain*/
|
template<typename TViewChain> class ZtCIterChain*/
|
||||||
@ -3309,6 +3354,36 @@ namespace ZNsMain
|
|||||||
{ AO_CView.template OnMeetType<TypeChainNow>(); }
|
{ AO_CView.template OnMeetType<TypeChainNow>(); }
|
||||||
static void IterTail(TViewChain AO_CView)
|
static void IterTail(TViewChain AO_CView)
|
||||||
{ AO_CView.template OnMeetType<TypeChainNow>(); }
|
{ 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:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template<typename TViewChain> class ZtCIterChain*/
|
template<typename TViewChain> class ZtCIterChain*/
|
||||||
@ -3351,6 +3426,70 @@ namespace ZNsMain
|
|||||||
void ZftIterTmplChainTail(TTypeView AO_View)
|
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 예제.
|
■ ZtCTypeChain 예제.
|
||||||
@ -3367,6 +3506,10 @@ namespace ZNsMain
|
|||||||
{
|
{
|
||||||
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
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()
|
int main()
|
||||||
@ -3381,8 +3524,9 @@ namespace ZNsMain
|
|||||||
ZCEmpty > > >
|
ZCEmpty > > >
|
||||||
> ZCTypeChain; ZCTypeView VO_ZCTypeView;
|
> 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);
|
ZftIterTmplChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
|
||||||
|
|
||||||
@ -3391,6 +3535,19 @@ namespace ZNsMain
|
|||||||
cout<<"************************************"<<endl;
|
cout<<"************************************"<<endl;
|
||||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user