diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 6761bf6..cb7266b 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -3645,7 +3645,8 @@ namespace ZNsMain VO_ZCObjtChain.SetDataRecur<1>(9999); 와, 멤버 변수 변경이 이렇게 깔끔하게 될 수 있다니... - C++ 진짜 멋지다! + + C++ 진짜 멋지다! template operator=() 가 있어서 가능했다. -- 2025-10-22 19:41 @@ -3993,6 +3994,85 @@ namespace ZNsMain + /*################################################################### + + ■ template class ZtCTypeByNo + + ZtCTypeChain, ZtCObjtChain 등을 template 인자로 받아, 어떤 index + 숫자로부터 type 을 알 수 있게 한다. index 는 0 부터 시작한다. + + 이러면 ZtCObjtChain 의 활용성이 점점 높어지는 것이다. -- 2025-10-23 19:47 + + ■ 예제 -- 2025-10-23 19:55 + + typedef ZtCObjtChain + < + char , ZtCObjtChain< + string, ZtCObjtChain< + double, ZtCObjtChain< + int , + ZCEmpty > > > + > ZCObjtChain; ZCObjtChain VO_ZCObjtChain; + + VO_ZCObjtChain.GetChainNext().GetData()="abc"; + *VO_ZCObjtChain ='Z' ; + *VO_ZCObjtChain() ="New Str"; + *VO_ZCObjtChain()() =0.8 ; + *VO_ZCObjtChain()()() =1234 ; + VO_ZCObjtChain.IterHead(VO_ZCTypeView); + + typedef ZtCTypeByNo::TypeData TypeDataHere0 ; + typedef ZtCTypeByNo::TypeData TypeDataHere1 ; + typedef ZtCTypeByNo::TypeData TypeDataHere2 ; + typedef ZtCTypeByNo::TypeData TypeDataHere3 ; + typedef ZtCTypeByNo::TypeData TypeDataHere4 ; + + typedef ZtCTypeByNo::TypeChain TypeChainHere0; + typedef ZtCTypeByNo::TypeChain TypeChainHere1; + typedef ZtCTypeByNo::TypeChain TypeChainHere2; + typedef ZtCTypeByNo::TypeChain TypeChainHere3; + typedef ZtCTypeByNo::TypeChain TypeChainHere4; + + cout<<"# TypeDataHere0 ="<::TypeData TypeDataHere0 ; + typedef ZtCTypeByNo::TypeData TypeDataHere1 ; + typedef ZtCTypeByNo::TypeData TypeDataHere2 ; + typedef ZtCTypeByNo::TypeData TypeDataHere3 ; + typedef ZtCTypeByNo::TypeData TypeDataHere4 ; + + typedef ZtCTypeByNo::TypeChain TypeChainHere0; + typedef ZtCTypeByNo::TypeChain TypeChainHere1; + typedef ZtCTypeByNo::TypeChain TypeChainHere2; + typedef ZtCTypeByNo::TypeChain TypeChainHere3; + typedef ZtCTypeByNo::TypeChain TypeChainHere4; + + cout<<"# TypeDataHere0 ="< ZCDataRing; ZCDataRing VO_CDataRing = string("123");