From e7692ddfd152d5454ff622884eed66262c7636ae Mon Sep 17 00:00:00 2001 From: sauron Date: Fri, 17 Oct 2025 20:55:05 +0900 Subject: [PATCH] commit 2025-10-17 20:54 add class ZtCCheckRef : ZCppMain/ZMainHead.H --- ZCppMain/ZMainHead.H | 118 +++++++++++++++++++++------------------ ZCppMainTest/ZtCBaseList_000.cpp | 51 +++++++++++++++++ 2 files changed, 116 insertions(+), 53 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 0b4b2f1..f16f686 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -1081,6 +1081,26 @@ namespace ZNsMain class ZtCCheckRef #################################################*/ + /* 참조 전문화 */ + template + class ZtCCheckRef /*#######################################*/ + { + public : + typedef TType& TypeData; + typedef TType TypeRaw ; + private: + TypeData mr_Data; + public : + ZtCCheckRef(TypeData AR_TypeData) : mr_Data(AR_TypeData){} + public : + TypeData GetData(){return mr_Data;} + public : + static TypeData PassData(TypeData AO_Data){return AO_Data;} + };/* + template + class ZtCCheckRef #########################################*/ + + /* ZtCRef 전문화 */ template class ZtCCheckRef< ZtCRef > /*##############################*/ @@ -3277,18 +3297,17 @@ namespace ZNsMain template static void IterHead(TViewChain AO_CView, TTypeHelp AO_TypeHelp) { - typedef ZNsMain:: - ZtCCheckRef ZCCheckRef; - typedef ZCCheckRef::TypeRaw TypeRaw ; + typedef ZNsMain::ZtCCheckRef ZCCheckRef; + typedef typename ZCCheckRef::TypeRaw TypeRaw ; - AO_CView.template - OnMeetType - ( ZCCheckRef::PassData(AO_TypeHelp) ) ; + AO_CView.template OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ) ; + /*************************************************/ if(TypeChainNow::ZEBoolNext>0) { - TypeChainNext::template ZtCIterChain - ::template IterHead(AO_CView, AO_TypeHelp) ; + TypeChainNext::template ZtCIterChain:: + template IterHead(AO_CView, AO_TypeHelp) ; }/* if(TypeChainNow::ZEBoolNext>0)*/ }/* @@ -3298,20 +3317,17 @@ namespace ZNsMain template static void IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp) { - typedef ZNsMain:: - ZtCCheckRef ZCCheckRef; - typedef ZCCheckRef::TypeRaw TypeRaw ; + typedef ZNsMain::ZtCCheckRef ZCCheckRef; + typedef typename 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) ) ; + TypeChainNext::template ZtCIterChain:: + template IterTail(AO_CView, AO_TypeHelp) ; + } + AO_CView.template OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ) ; + /*************************************************/ }/* template static void IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/ @@ -3354,13 +3370,13 @@ 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 ; + typedef ZNsMain::ZtCCheckRef ZCCheckRef; + typedef typename ZCCheckRef::TypeRaw TypeRaw ; AO_CView.template OnMeetType ( ZCCheckRef::PassData(AO_TypeHelp) ); @@ -3368,18 +3384,16 @@ namespace ZNsMain 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 ; + typedef ZNsMain::ZtCCheckRef ZCCheckRef; + typedef typename ZCCheckRef::TypeRaw TypeRaw ; - AO_CView.template - OnMeetType - ( ZCCheckRef::PassData(AO_TypeHelp) ) ; + AO_CView.template OnMeetType + ( ZCCheckRef::PassData(AO_TypeHelp) ) ; }/* template static void IterTail(TViewChain AO_CView, TTypeHelp AO_TypeHelp)*/ @@ -3392,52 +3406,51 @@ namespace ZNsMain template - void ZftIterTmplChainHead(TTypeView AO_View) + void ZftIterTmplChainHead(TTypeView AO_CView) { - AO_View.template OnMeetType(); + AO_CView.template OnMeetType(); if(TTmplChain::ZEBoolNext>0) { typedef typename TTmplChain::TypeChainNext TypeChainNext; - ZftIterTmplChainHead(AO_View); + ZftIterTmplChainHead(AO_CView); }/* if(TTmplChain::ZEBoolNext>0)*/ }/* template - void ZftIterTmplChainHead(TTypeView AO_View) + void ZftIterTmplChainHead(TTypeView AO_CView) */ template - void ZftIterTmplChainTail(TTypeView AO_View) + void ZftIterTmplChainTail(TTypeView AO_CView) { if(TTmplChain::ZEBoolNext>0) { typedef typename TTmplChain::TypeChainNext TypeChainNext; - ZftIterTmplChainTail(AO_View); + ZftIterTmplChainTail(AO_CView); }/* if(TTmplChain::ZEBoolNext>0)*/ - AO_View.template OnMeetType(); + AO_CView.template OnMeetType(); }/* template - void ZftIterTmplChainTail(TTypeView AO_View) + void ZftIterTmplChainTail(TTypeView AO_CView) */ template void ZftIterTmplChainHead - (TTypeView AO_View, TTypeHelp AO_TypeHelp) + (TTypeView AO_CView, TTypeHelp AO_TypeHelp) /*#############################################################*/ { - typedef ZNsMain:: - ZtCCheckRef ZCCheckRef ; - typedef ZCCheckRef::TypeRaw TypeRaw ; + typedef ZNsMain::ZtCCheckRef ZCCheckRef; + typedef typename ZCCheckRef::TypeRaw TypeRaw ; - AO_View.template OnMeetType + AO_CView.template OnMeetType ( ZCCheckRef::PassData(AO_TypeHelp) ); if(TTmplChain::ZEBoolNext>0) @@ -3447,26 +3460,25 @@ namespace ZNsMain ZftIterTmplChainHead - (AO_View, AO_TypeHelp); + (AO_CView, AO_TypeHelp); }/* if(TTmplChain::ZEBoolNext>0)*/ }/* template void ZftIterTmplChainHead - (TTypeView AO_View, TTypeHelp AO_TypeHelp) + (TTypeView AO_CView, TTypeHelp AO_TypeHelp) ###############################################################*/ template void ZftIterTmplChainTail - (TTypeView AO_View, TTypeHelp AO_TypeHelp) + (TTypeView AO_CView, TTypeHelp AO_TypeHelp) /*#############################################################*/ { - typedef ZNsMain:: - ZtCCheckRef ZCCheckRef ; - typedef ZCCheckRef::TypeRaw TypeRaw ; + typedef ZNsMain::ZtCCheckRef ZCCheckRef; + typedef typename ZCCheckRef::TypeRaw TypeRaw ; if(TTmplChain::ZEBoolNext>0) { @@ -3475,17 +3487,17 @@ namespace ZNsMain ZftIterTmplChainTail - (AO_View, AO_TypeHelp); + (AO_CView, AO_TypeHelp); }/* if(TTmplChain::ZEBoolNext>0)*/ - AO_View.template OnMeetType + AO_CView.template OnMeetType ( ZCCheckRef::PassData(AO_TypeHelp) ); }/* template void ZftIterTmplChainTail - (TTypeView AO_View, TTypeHelp AO_TypeHelp) + (TTypeView AO_CView, TTypeHelp AO_TypeHelp) ###############################################################*/ @@ -3506,7 +3518,7 @@ namespace ZNsMain { cout< void OnMeetType(TTypHelp& AR_CallNo) + template void OnMeetType(int& AR_CallNo) { cout<<"* Call No="<<++AR_CallNo<<" : "< void OnMeetType(int& AR_CallNo) + { + cout<<"* Call No="<<++AR_CallNo<<" : "< > > + > ZCTypeChain; ZCTypeView VO_ZCTypeView; + + int VI_CallNo = 0; + + cout<<"*** tmpl chain size = "<(VO_ZCTypeView); + + cout<<"************************************"<::IterHead(VO_ZCTypeView); + cout<<"************************************"<::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)); + + ZTypLong VI_CallCnt=0; CStringBase VO_CStringBase;