diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index ef6c675..2a873e2 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -1235,11 +1235,13 @@ namespace ZNsMain //////////////////////////////////////////////////////////////////////////////////////////*/ - template< typename Type1=void, typename Type2 =void, - typename Type3=void, typename Type4 =void, - typename Type5=void, typename Type6 =void, - typename Type7=void, typename Type8 =void, - typename Type9=void, typename Type10=void, typename Type11=void + template< typename Type1 =void, typename Type2 =void, + typename Type3 =void, typename Type4 =void, + typename Type5 =void, typename Type6 =void, + typename Type7 =void, typename Type8 =void, + typename Type9 =void, typename Type10=void, + typename Type11=void, typename Type12=void, + typename Type13=void > struct ZtStTuple ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { @@ -1555,6 +1557,108 @@ namespace ZNsMain {} }; /*###########################################################################################*/ + template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10, typename Type11 + > + struct ZtStTuple //////////////////////////////////////////////////////////////////////////////////////////// + { + typedef ZNsMain::ZtCCheckRef CCheckRef1 ; + typedef ZNsMain::ZtCCheckRef CCheckRef2 ; + typedef ZNsMain::ZtCCheckRef CCheckRef3 ; + typedef ZNsMain::ZtCCheckRef CCheckRef4 ; + typedef ZNsMain::ZtCCheckRef CCheckRef5 ; + typedef ZNsMain::ZtCCheckRef CCheckRef6 ; + typedef ZNsMain::ZtCCheckRef CCheckRef7 ; + typedef ZNsMain::ZtCCheckRef CCheckRef8 ; + typedef ZNsMain::ZtCCheckRef CCheckRef9 ; + typedef ZNsMain::ZtCCheckRef CCheckRef10; + typedef ZNsMain::ZtCCheckRef CCheckRef11; + + typedef typename CCheckRef1 ::TypeData TypeData1 ; + typedef typename CCheckRef2 ::TypeData TypeData2 ; + typedef typename CCheckRef3 ::TypeData TypeData3 ; + typedef typename CCheckRef4 ::TypeData TypeData4 ; + typedef typename CCheckRef5 ::TypeData TypeData5 ; + typedef typename CCheckRef6 ::TypeData TypeData6 ; + typedef typename CCheckRef7 ::TypeData TypeData7 ; + typedef typename CCheckRef8 ::TypeData TypeData8 ; + typedef typename CCheckRef9 ::TypeData TypeData9 ; + typedef typename CCheckRef10::TypeData TypeData10 ; + typedef typename CCheckRef11::TypeData TypeData11 ; + + TypeData1 _1 ; TypeData2 _2 ; TypeData3 _3 ; TypeData4 _4 ; + TypeData5 _5 ; TypeData6 _6 ; TypeData7 _7 ; TypeData8 _8 ; + TypeData9 _9 ; TypeData10 _10; TypeData11 _11; + + ZtStTuple(){} + ZtStTuple + (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10, Type11 _T11) : + _1 (CCheckRef1 ::PassData(_T1 )) + , _2 (CCheckRef2 ::PassData(_T2 )) + , _3 (CCheckRef3 ::PassData(_T3 )) + , _4 (CCheckRef4 ::PassData(_T4 )) + , _5 (CCheckRef5 ::PassData(_T5 )) + , _6 (CCheckRef6 ::PassData(_T6 )) + , _7 (CCheckRef7 ::PassData(_T7 )) + , _8 (CCheckRef8 ::PassData(_T8 )) + , _9 (CCheckRef9 ::PassData(_T9 )) + , _10(CCheckRef10::PassData(_T10)) + , _11(CCheckRef11::PassData(_T11)) + {} + }; + /*###########################################################################################*/ + template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10, typename Type11, typename Type12 + > + struct ZtStTuple ///////////////////////////////////////////////////////////////////////////////////////////////////// + { + typedef ZNsMain::ZtCCheckRef CCheckRef1 ; + typedef ZNsMain::ZtCCheckRef CCheckRef2 ; + typedef ZNsMain::ZtCCheckRef CCheckRef3 ; + typedef ZNsMain::ZtCCheckRef CCheckRef4 ; + typedef ZNsMain::ZtCCheckRef CCheckRef5 ; + typedef ZNsMain::ZtCCheckRef CCheckRef6 ; + typedef ZNsMain::ZtCCheckRef CCheckRef7 ; + typedef ZNsMain::ZtCCheckRef CCheckRef8 ; + typedef ZNsMain::ZtCCheckRef CCheckRef9 ; + typedef ZNsMain::ZtCCheckRef CCheckRef10; + typedef ZNsMain::ZtCCheckRef CCheckRef11; + typedef ZNsMain::ZtCCheckRef CCheckRef12; + + typedef typename CCheckRef1 ::TypeData TypeData1 ; + typedef typename CCheckRef2 ::TypeData TypeData2 ; + typedef typename CCheckRef3 ::TypeData TypeData3 ; + typedef typename CCheckRef4 ::TypeData TypeData4 ; + typedef typename CCheckRef5 ::TypeData TypeData5 ; + typedef typename CCheckRef6 ::TypeData TypeData6 ; + typedef typename CCheckRef7 ::TypeData TypeData7 ; + typedef typename CCheckRef8 ::TypeData TypeData8 ; + typedef typename CCheckRef9 ::TypeData TypeData9 ; + typedef typename CCheckRef10::TypeData TypeData10 ; + typedef typename CCheckRef11::TypeData TypeData11 ; + typedef typename CCheckRef12::TypeData TypeData12 ; + + TypeData1 _1 ; TypeData2 _2 ; TypeData3 _3 ; TypeData4 _4 ; + TypeData5 _5 ; TypeData6 _6 ; TypeData7 _7 ; TypeData8 _8 ; + TypeData9 _9 ; TypeData10 _10; TypeData11 _11; TypeData12 _12; + + ZtStTuple(){} + ZtStTuple + (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10, Type11 _T11, Type12 _T12) : + _1 (CCheckRef1 ::PassData(_T1 )) + , _2 (CCheckRef2 ::PassData(_T2 )) + , _3 (CCheckRef3 ::PassData(_T3 )) + , _4 (CCheckRef4 ::PassData(_T4 )) + , _5 (CCheckRef5 ::PassData(_T5 )) + , _6 (CCheckRef6 ::PassData(_T6 )) + , _7 (CCheckRef7 ::PassData(_T7 )) + , _8 (CCheckRef8 ::PassData(_T8 )) + , _9 (CCheckRef9 ::PassData(_T9 )) + , _10(CCheckRef10::PassData(_T10)) + , _11(CCheckRef11::PassData(_T11)) + , _12(CCheckRef12::PassData(_T12)) + {} + }; + /*###########################################################################################*/ + template @@ -1685,6 +1789,40 @@ namespace ZNsMain } + template< typename Type1 , typename Type2, typename Type3, + typename Type4 , typename Type5, typename Type6, + typename Type7 , typename Type8, typename Type9, + typename Type10, typename Type11 + > + ZtStTuple ZftMakeTuple + ( + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10, Type11 _T11 + ) + /*#################################################################################################*/ + { + return ZtStTuple + + (_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11); + } + + + template< typename Type1 , typename Type2 , typename Type3, + typename Type4 , typename Type5 , typename Type6, + typename Type7 , typename Type8 , typename Type9, + typename Type10, typename Type11, typename Type12 + > + ZtStTuple ZftMakeTuple + ( + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10, Type11 _T11, Type12 _T12 + ) + /*#########################################################################################################*/ + { + return ZtStTuple + + (_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12); + } + + template< typename TTypeArg1, typename TTypeArg2, diff --git a/ZCppMainTest/ZftMakeTuple_000.cpp b/ZCppMainTest/ZftMakeTuple_000.cpp index eff179f..b9e96d3 100644 --- a/ZCppMainTest/ZftMakeTuple_000.cpp +++ b/ZCppMainTest/ZftMakeTuple_000.cpp @@ -33,9 +33,13 @@ namespace ZNsMain auto myt8 = ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43)); auto myt9 = ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr)); auto myt10= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt)); + auto myt11= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt), 20250906); + auto myt12= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt), wchar_t(0)); - myt10._10 = 1200; // 아래 2개 출력이 같아야 한다. + myt10._10 = 1200; + myt11._10 += 1200; + // 아래 2개 출력이 같아야 한다. cout<