From 0e4ae406223054cd9d8cd775f94c9ae5edcebecd Mon Sep 17 00:00:00 2001 From: sauron Date: Fri, 17 Oct 2025 19:13:38 +0900 Subject: [PATCH] commit 2025-10-17 19:13 add IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp) & IterTail() in ZtCTypeChain : ZCppMain/ZMainHead.H --- ZCppMain/ZMainHead.H | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 158 insertions(+), 1 deletion(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 6a9fea8..0b4b2f1 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -3271,6 +3271,51 @@ namespace ZNsMain AO_CView.template OnMeetType(); }/* static void IterTail(TViewChain AO_CView)*/ + + /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + + template static void + IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp) + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef; + typedef ZCCheckRef::TypeRaw TypeRaw ; + + AO_CView.template + OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ) ; + + if(TypeChainNow::ZEBoolNext>0) + { + TypeChainNext::template ZtCIterChain + ::template IterHead(AO_CView, AO_TypeHelp) ; + }/* + if(TypeChainNow::ZEBoolNext>0)*/ + }/* + template static void + IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/ + + template static void + IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp) + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef; + typedef ZCCheckRef::TypeRaw TypeRaw ; + + if(TypeChainNow::ZEBoolNext>0) + { + TypeChainNext::template ZtCIterChain + ::template IterTail(AO_CView, AO_TypeHelp) ; + }/* + if(TypeChainNow::ZEBoolNext>0)*/ + + AO_CView.template + OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ) ; + }/* + template static void + IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/ + public: };/* template class ZtCIterChain*/ @@ -3309,6 +3354,36 @@ namespace ZNsMain { AO_CView.template OnMeetType(); } static void IterTail(TViewChain AO_CView) { AO_CView.template OnMeetType(); } + + template static void + IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp) + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef ; + typedef ZCCheckRef::TypeRaw TypeRaw ; + + AO_CView.template OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ); + }/* + template static void + IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/ + + /*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + + template static void + IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp) + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef; + typedef ZCCheckRef::TypeRaw TypeRaw ; + + AO_CView.template + OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ) ; + }/* + template static void + IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/ + public: };/* template class ZtCIterChain*/ @@ -3351,6 +3426,70 @@ namespace ZNsMain void ZftIterTmplChainTail(TTypeView AO_View) */ + + template + + void ZftIterTmplChainHead + (TTypeView AO_View, TTypeHelp AO_TypeHelp) + /*#############################################################*/ + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef ; + typedef ZCCheckRef::TypeRaw TypeRaw ; + + AO_View.template OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ); + + if(TTmplChain::ZEBoolNext>0) + { + typedef typename + TTmplChain::TypeChainNext TypeChainNext; + + ZftIterTmplChainHead + + (AO_View, AO_TypeHelp); + }/* + if(TTmplChain::ZEBoolNext>0)*/ + }/* + template + + void ZftIterTmplChainHead + (TTypeView AO_View, TTypeHelp AO_TypeHelp) + ###############################################################*/ + + + template + + void ZftIterTmplChainTail + (TTypeView AO_View, TTypeHelp AO_TypeHelp) + /*#############################################################*/ + { + typedef ZNsMain:: + ZtCCheckRef ZCCheckRef ; + typedef ZCCheckRef::TypeRaw TypeRaw ; + + if(TTmplChain::ZEBoolNext>0) + { + typedef typename + TTmplChain::TypeChainNext TypeChainNext; + + ZftIterTmplChainTail + + (AO_View, AO_TypeHelp); + }/* + if(TTmplChain::ZEBoolNext>0)*/ + + AO_View.template OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ); + }/* + template + + void ZftIterTmplChainTail + (TTypeView AO_View, TTypeHelp AO_TypeHelp) + ###############################################################*/ + + + /*//////////////////////////////////////////////////////////////// ■ ZtCTypeChain 예제. @@ -3367,6 +3506,10 @@ namespace ZNsMain { cout< void OnMeetType(TTypHelp& AR_CallNo) + { + cout<<"* Call No="<<++AR_CallNo<<" : "< > > > ZCTypeChain; ZCTypeView VO_ZCTypeView; - cout<<"temp chain size = "<::IterTail(VO_ZCTypeView); + ZftIterTmplChainHead + ( VO_ZCTypeView, (VI_CallNo = 0) ); + cout<<"************************************"< + ( VO_ZCTypeView, (VI_CallNo = 0) ); + + cout<<"************************************"<:: + IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0)); + cout<<"************************************"<:: + IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0)); + return 0; }