From 28b6010c517a9e037757fca02f555cece475f8ac Mon Sep 17 00:00:00 2001 From: sauron Date: Sat, 6 Sep 2025 21:41:28 +0900 Subject: [PATCH] commit 2025-09-06 09:41 bug fix of ZftMakeTuple() in ZCppMain/ZMainHead.H --- ZCppMain/ZMainHead.H | 722 ++++++++++++++++++++++++++++++++------ ZCppMainTest/ZftMakeTuple_000.cpp | 63 +++- 2 files changed, 673 insertions(+), 112 deletions(-) diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 2a873e2..0829949 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -1233,6 +1233,10 @@ namespace ZNsMain ■ 이젠 ZtStTuple 형태도 가능하다. ZftMakeTuple() 도 추가. - -2025-09-05 21:01 + ■ RVO(Return Value Optimization) 로 인해 아래가 가능하다. -- 2025-09-06 21:23 + + int VariMy=0; ZtStTuple myt1 = ZftMakeTuple(ZftMCP(VariMy)); + //////////////////////////////////////////////////////////////////////////////////////////*/ template< typename Type1 =void, typename Type2 =void, @@ -1250,9 +1254,7 @@ namespace ZNsMain /*###########################################################################################*/ - template< typename Type1 - > - struct ZtStTuple /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + template struct ZtStTuple { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef typename CCheckRef1::TypeData TypeData1 ; @@ -1265,9 +1267,9 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - > - struct ZtStTuple //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2 > + struct ZtStTuple { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1284,9 +1286,9 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2, typename Type3 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - > - struct ZtStTuple ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2, typename Type3 > + struct ZtStTuple { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1307,9 +1309,9 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2, typename Type3, typename Type4 //////////////////////////////////////////////////////////////////////////////////////////////////////// - > - struct ZtStTuple ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2, typename Type3, typename Type4 > + struct ZtStTuple { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1333,9 +1335,11 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5 //////////////////////////////////////////////////////////////////////////////////////// - > - struct ZtStTuple /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2, typename Type3, + typename Type4, typename Type5 + > + struct ZtStTuple { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1350,7 +1354,7 @@ namespace ZNsMain typedef typename CCheckRef5::TypeData TypeData5 ; TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; TypeData5 _5; - + ZtStTuple(){} ZtStTuple (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5) : @@ -1362,9 +1366,11 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6 //////////////////////////////////////////////////////////////////////// - > - struct ZtStTuple //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2, typename Type3, + typename Type4, typename Type5, typename Type6 + > + struct ZtStTuple { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1380,11 +1386,14 @@ namespace ZNsMain typedef typename CCheckRef5::TypeData TypeData5 ; typedef typename CCheckRef6::TypeData TypeData6 ; - TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; TypeData5 _5; TypeData6 _6; + TypeData1 _1; TypeData2 _2; TypeData3 _3; + TypeData4 _4; TypeData5 _5; TypeData6 _6; ZtStTuple(){} ZtStTuple - (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6) : + ( + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6 + ) : _1(CCheckRef1::PassData(_T1)) , _2(CCheckRef2::PassData(_T2)) , _3(CCheckRef3::PassData(_T3)) @@ -1394,9 +1403,11 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7 //////////////////////////////////////////////////////// - > - struct ZtStTuple ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2, typename Type3, + typename Type4, typename Type5, typename Type6, typename Type7 + > + struct ZtStTuple { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1419,7 +1430,10 @@ namespace ZNsMain ZtStTuple(){} ZtStTuple - (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7) : + ( + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, + Type5 _T5, Type6 _T6, Type7 _T7 + ) : _1(CCheckRef1::PassData(_T1)) , _2(CCheckRef2::PassData(_T2)) , _3(CCheckRef3::PassData(_T3)) @@ -1430,9 +1444,12 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8 //////////////////////////////////////// - > - struct ZtStTuple ////////////////////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2, typename Type3, + typename Type4, typename Type5, typename Type6, + typename Type7, typename Type8 + > + struct ZtStTuple { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1457,7 +1474,10 @@ namespace ZNsMain ZtStTuple(){} ZtStTuple - (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8) : + ( + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, + Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8 + ) : _1(CCheckRef1::PassData(_T1)) , _2(CCheckRef2::PassData(_T2)) , _3(CCheckRef3::PassData(_T3)) @@ -1469,9 +1489,13 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9 //////////////////////// - > - struct ZtStTuple /////////////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2, typename Type3, + typename Type4, typename Type5, typename Type6, + typename Type7, typename Type8, typename Type9 + > + struct ZtStTuple + { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1498,7 +1522,10 @@ namespace ZNsMain ZtStTuple(){} ZtStTuple - (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9) : + ( + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, + Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9 + ) : _1(CCheckRef1::PassData(_T1)) , _2(CCheckRef2::PassData(_T2)) , _3(CCheckRef3::PassData(_T3)) @@ -1511,9 +1538,16 @@ namespace ZNsMain {} }; /*###########################################################################################*/ - template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10 - > - struct ZtStTuple /////////////////////////////////////////////////////////////////////////////////////////// + template + < typename Type1, typename Type2, typename Type3, + typename Type4, typename Type5, typename Type6, + typename Type7, typename Type8, typename Type9, typename Type10 + > + struct ZtStTuple + < + Type1, Type2, Type3, Type4, Type5, + Type6, Type7, Type8, Type9, Type10 + > { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1543,7 +1577,11 @@ namespace ZNsMain ZtStTuple(){} ZtStTuple - (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10) : + ( + Type1 _T1, Type2 _T2 , Type3 _T3, Type4 _T4, + Type5 _T5, Type6 _T6 , Type7 _T7, Type8 _T8, + Type9 _T9, Type10 _T10 + ) : _1 (CCheckRef1 ::PassData(_T1 )) , _2 (CCheckRef2 ::PassData(_T2 )) , _3 (CCheckRef3 ::PassData(_T3 )) @@ -1557,9 +1595,17 @@ 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 //////////////////////////////////////////////////////////////////////////////////////////// + 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 + < + Type1, Type2, Type3, Type4 , Type5, Type6, + Type7, Type8, Type9, Type10, Type11 + > { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1591,7 +1637,11 @@ namespace ZNsMain ZtStTuple(){} ZtStTuple - (Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10, Type11 _T11) : + ( + 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 )) @@ -1606,9 +1656,17 @@ 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, typename Type12 - > - struct ZtStTuple ///////////////////////////////////////////////////////////////////////////////////////////////////// + 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 + < + Type1, Type2, Type3, Type4 , Type5 , Type6 , + Type7, Type8, Type9, Type10, Type11, Type12 + > { typedef ZNsMain::ZtCCheckRef CCheckRef1 ; typedef ZNsMain::ZtCCheckRef CCheckRef2 ; @@ -1642,7 +1700,11 @@ namespace ZNsMain 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) : + ( + 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 )) @@ -1661,132 +1723,458 @@ namespace ZNsMain - template - ZtStTuple ZftMakeTuple(Type1 _T1) + + /*///////////////////////////////////////////////////////////////////////////////////////////// + + ■ RVO(Return Value Optimization) 로 인해 아래가 가능하다. -- 2025-09-06 21:23 + + int VariMy=0; ZtStTuple myt1 = ZftMakeTuple(ZftMCP(VariMy)); + + /////////////////////////////////////////////////////////////////////////////////////////////*/ + + template + + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + ::TypeData> + ZftMakeTuple(Type1 _T1) { - return ZtStTuple(_T1); - }/* - template - ZtStTuple ZftMakeTuple(Type1 _T1)*/ + typedef ZNsMain::ZtCCheckRef CCheckRef1 ; - template - ZtStTuple ZftMakeTuple(Type1 _T1, Type2 _T2) + typedef typename CCheckRef1::TypeData TypeData1 ; + + return ZtStTuple /*::::::::::::::::::::::::::::::::::::*/ + ( + CCheckRef1::PassData(_T1) + ); + } + /*####################################################################*/ + + + template + + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple(Type1 _T1, Type2 _T2) { - return ZtStTuple(_T1, _T2); - }/* - template - ZtStTuple ZftMakeTuple(Type1 _T1, Type2 _T2)*/ + typedef ZNsMain::ZtCCheckRef CCheckRef1 ; + typedef ZNsMain::ZtCCheckRef CCheckRef2 ; - template - ZtStTuple ZftMakeTuple(Type1 _T1, Type2 _T2, Type3 _T3) + typedef typename CCheckRef1::TypeData TypeData1 ; + typedef typename CCheckRef2::TypeData TypeData2 ; + + return ZtStTuple /*:::::::::::::::::::::::::*/ + ( + CCheckRef1::PassData(_T1) + , CCheckRef2::PassData(_T2) + ); + } + /*####################################################################*/ + + + template + + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple(Type1 _T1, Type2 _T2, Type3 _T3) { - return ZtStTuple(_T1, _T2, _T3); - }/* - template - ZtStTuple ZftMakeTuple(Type1 _T1, Type2 _T2, Type3 _T3)*/ + typedef ZNsMain::ZtCCheckRef CCheckRef1 ; + typedef ZNsMain::ZtCCheckRef CCheckRef2 ; + typedef ZNsMain::ZtCCheckRef CCheckRef3 ; + + typedef typename CCheckRef1::TypeData TypeData1 ; + typedef typename CCheckRef2::TypeData TypeData2 ; + typedef typename CCheckRef3::TypeData TypeData3 ; + + return ZtStTuple /*::::::::::::::*/ + ( + CCheckRef1::PassData(_T1) + , CCheckRef2::PassData(_T2) + , CCheckRef3::PassData(_T3) + ); + } + /*####################################################################*/ - template< typename Type1, typename Type2, typename Type3, typename Type4 - > - ZtStTuple ZftMakeTuple ///////////////////// + template + < typename Type1, typename Type2, typename Type3, typename Type4 > + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple /*#######################################################*/ ( Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4 ) /*####################################################################*/ { - return ZtStTuple(_T1, _T2, _T3, _T4); + typedef ZNsMain::ZtCCheckRef CCheckRef1 ; + typedef ZNsMain::ZtCCheckRef CCheckRef2 ; + typedef ZNsMain::ZtCCheckRef CCheckRef3 ; + typedef ZNsMain::ZtCCheckRef CCheckRef4 ; + + typedef typename CCheckRef1::TypeData TypeData1 ; + typedef typename CCheckRef2::TypeData TypeData2 ; + typedef typename CCheckRef3::TypeData TypeData3 ; + typedef typename CCheckRef4::TypeData TypeData4 ; + + return ZtStTuple /*:::*/ + ( + CCheckRef1::PassData(_T1) + , CCheckRef2::PassData(_T2) + , CCheckRef3::PassData(_T3) + , CCheckRef4::PassData(_T4) + ); } + /*####################################################################*/ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5 > - ZtStTuple ZftMakeTuple ////////////// + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple /*#######################################################*/ ( Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5 ) /*####################################################################*/ { - return ZtStTuple(_T1, _T2, _T3, _T4, _T5); + typedef ZNsMain::ZtCCheckRef CCheckRef1 ; + typedef ZNsMain::ZtCCheckRef CCheckRef2 ; + typedef ZNsMain::ZtCCheckRef CCheckRef3 ; + typedef ZNsMain::ZtCCheckRef CCheckRef4 ; + typedef ZNsMain::ZtCCheckRef CCheckRef5 ; + + 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 ; + + return ZtStTuple /*:::::::::::::::::::::::::::::::::::::::::::::::*/ + < + TypeData1, TypeData2, + TypeData3, TypeData4, TypeData5 + > + ( + CCheckRef1::PassData(_T1) + , CCheckRef2::PassData(_T2) + , CCheckRef3::PassData(_T3) + , CCheckRef4::PassData(_T4) + , CCheckRef5::PassData(_T5) + ); } + /*####################################################################*/ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6 > - ZtStTuple ZftMakeTuple /////// + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple /*#######################################################*/ ( Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6 ) /*####################################################################*/ { - return ZtStTuple - - (_T1, _T2, _T3, _T4, _T5, _T6); + 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 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 ; + + return ZtStTuple /*:::::::::::::::::::::::::::::::::::::::::::::::*/ + < + TypeData1, TypeData2, TypeData3, + TypeData4, TypeData5, TypeData6 + > + ( + CCheckRef1::PassData(_T1) + , CCheckRef2::PassData(_T2) + , CCheckRef3::PassData(_T3) + , CCheckRef4::PassData(_T4) + , CCheckRef5::PassData(_T5) + , CCheckRef6::PassData(_T6) + ); } + /*####################################################################*/ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7 > - ZtStTuple ZftMakeTuple + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple /*#######################################################*/ ( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7 + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, + Type5 _T5, Type6 _T6, Type7 _T7 ) /*####################################################################*/ { - return ZtStTuple - - (_T1, _T2, _T3, _T4, _T5, _T6, _T7); + 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 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 ; + + return ZtStTuple /*:::::::::::::::::::::::::::::::::::::::::::::::*/ + < + TypeData1, TypeData2, TypeData3, TypeData4, + TypeData5, TypeData6, TypeData7 + > + ( + CCheckRef1::PassData(_T1) + , CCheckRef2::PassData(_T2) + , CCheckRef3::PassData(_T3) + , CCheckRef4::PassData(_T4) + , CCheckRef5::PassData(_T5) + , CCheckRef6::PassData(_T6) + , CCheckRef7::PassData(_T7) + ); } + /*####################################################################*/ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8 > - ZtStTuple ZftMakeTuple + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple /*#######################################################*/ ( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8 + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, + Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8 ) - /*##########################################################################*/ + /*####################################################################*/ { - return ZtStTuple - - (_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8); + 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 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 ; + + return ZtStTuple /*:::::::::::::::::::::::::::::::::::::::::::::::*/ + < + TypeData1, TypeData2, TypeData3, TypeData4, + TypeData5, TypeData6, TypeData7, TypeData8 + > + ( + CCheckRef1::PassData(_T1) + , CCheckRef2::PassData(_T2) + , CCheckRef3::PassData(_T3) + , CCheckRef4::PassData(_T4) + , CCheckRef5::PassData(_T5) + , CCheckRef6::PassData(_T6) + , CCheckRef7::PassData(_T7) + , CCheckRef8::PassData(_T8) + ); } + /*####################################################################*/ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9 > - ZtStTuple ZftMakeTuple + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple /*#######################################################*/ ( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9 + Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, + Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9 ) - /*#################################################################################*/ + /*####################################################################*/ { - return ZtStTuple - - (_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9); + 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 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 ; + + return ZtStTuple /*:::::::::::::::::::::::::::::::::::::::::::::::*/ + < + TypeData1, TypeData2, TypeData3, TypeData4, + TypeData5, TypeData6, TypeData7, TypeData8, TypeData9 + > + ( + CCheckRef1::PassData(_T1) + , CCheckRef2::PassData(_T2) + , CCheckRef3::PassData(_T3) + , CCheckRef4::PassData(_T4) + , CCheckRef5::PassData(_T5) + , CCheckRef6::PassData(_T6) + , CCheckRef7::PassData(_T7) + , CCheckRef8::PassData(_T8) + , CCheckRef9::PassData(_T9) + ); } + /*####################################################################*/ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10 > - ZtStTuple ZftMakeTuple + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple /*#######################################################*/ ( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10 + Type1 _T1, Type2 _T2 , Type3 _T3, Type4 _T4, + Type5 _T5, Type6 _T6 , Type7 _T7, Type8 _T8, + Type9 _T9, Type10 _T10 ) - /*#########################################################################################*/ + /*####################################################################*/ { - return ZtStTuple - - (_T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10); + 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 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 ; + + return ZtStTuple /*:::::::::::::::::::::::::::::::::::::::::::::::*/ + < + TypeData1, TypeData2, TypeData3, TypeData4, + TypeData5, TypeData6, TypeData7, TypeData8, + TypeData9, TypeData10 + > + ( + CCheckRef1 ::PassData(_T1 ) + , CCheckRef2 ::PassData(_T2 ) + , CCheckRef3 ::PassData(_T3 ) + , CCheckRef4 ::PassData(_T4 ) + , CCheckRef5 ::PassData(_T5 ) + , CCheckRef6 ::PassData(_T6 ) + , CCheckRef7 ::PassData(_T7 ) + , CCheckRef8 ::PassData(_T8 ) + , CCheckRef9 ::PassData(_T9 ) + , CCheckRef10::PassData(_T10) + ); } + /*####################################################################*/ template< typename Type1 , typename Type2, typename Type3, @@ -1794,16 +2182,73 @@ namespace ZNsMain typename Type7 , typename Type8, typename Type9, typename Type10, typename Type11 > - ZtStTuple ZftMakeTuple + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + ZftMakeTuple /*#######################################################*/ ( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10, Type11 _T11 + 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); + 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 ; + + return ZtStTuple /*:::::::::::::::::::::::::::::::::::::::::::::::*/ + < + TypeData1, TypeData2 , TypeData3, TypeData4, + TypeData5, TypeData6 , TypeData7, TypeData8, + TypeData9, TypeData10, TypeData11 + > + ( + CCheckRef1 ::PassData(_T1 ) + , CCheckRef2 ::PassData(_T2 ) + , CCheckRef3 ::PassData(_T3 ) + , CCheckRef4 ::PassData(_T4 ) + , CCheckRef5 ::PassData(_T5 ) + , CCheckRef6 ::PassData(_T6 ) + , CCheckRef7 ::PassData(_T7 ) + , CCheckRef8 ::PassData(_T8 ) + , CCheckRef9 ::PassData(_T9 ) + , CCheckRef10::PassData(_T10) + , CCheckRef11::PassData(_T11) + ); } + /*####################################################################*/ template< typename Type1 , typename Type2 , typename Type3, @@ -1811,16 +2256,77 @@ namespace ZNsMain typename Type7 , typename Type8 , typename Type9, typename Type10, typename Type11, typename Type12 > - ZtStTuple ZftMakeTuple + ZtStTuple /*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/ + < + typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + , typename ZNsMain::ZtCCheckRef::TypeData + > + 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 + 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); + 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 ; + + return ZtStTuple /*:::::::::::::::::::::::::::::::::::::::::::::::*/ + < + TypeData1, TypeData2 , TypeData3 , TypeData4, + TypeData5, TypeData6 , TypeData7 , TypeData8, + TypeData9, TypeData10, TypeData11, TypeData12 + > + ( + CCheckRef1 ::PassData(_T1 ) + , CCheckRef2 ::PassData(_T2 ) + , CCheckRef3 ::PassData(_T3 ) + , CCheckRef4 ::PassData(_T4 ) + , CCheckRef5 ::PassData(_T5 ) + , CCheckRef6 ::PassData(_T6 ) + , CCheckRef7 ::PassData(_T7 ) + , CCheckRef8 ::PassData(_T8 ) + , CCheckRef9 ::PassData(_T9 ) + , CCheckRef10::PassData(_T10) + , CCheckRef11::PassData(_T11) + , CCheckRef12::PassData(_T12) + ); } + /*####################################################################*/ diff --git a/ZCppMainTest/ZftMakeTuple_000.cpp b/ZCppMainTest/ZftMakeTuple_000.cpp index 31fcac4..c50c637 100644 --- a/ZCppMainTest/ZftMakeTuple_000.cpp +++ b/ZCppMainTest/ZftMakeTuple_000.cpp @@ -20,8 +20,40 @@ namespace ZNsMain static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0) { - ZCStringStd VO_BuffCStr("myBuff"); - ZTypInt VI_NowCnt = 0; + ZCStringStd VO_BuffCStr("myBuff") ; + ZTypInt VI_NowCnt = 0 ; + + + #ifdef __CPP_1998__ + + cout<<"# Use C++ 98 Spec"< + myt1 = ZftMakeTuple(1); + ZtStTuple + myt2 = ZftMakeTuple(1, 34); + ZtStTuple + myt3 = ZftMakeTuple(1, 34, 'C'); + ZtStTuple + myt4 = ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr)); + ZtStTuple + myt5 = ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true); + ZtStTuple + myt6 = ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB"); + ZtStTuple + myt7 = ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34)); + ZtStTuple + myt8 = ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43)); + ZtStTuple + myt9 = ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr)); + ZtStTuple + myt10= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt)); + ZtStTuple + myt11= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt), 20250906); + ZtStTuple + myt12= ZftMakeTuple(1, 34, 'C', ZftMCP(VO_BuffCStr), true, "AB", double(0.34), float(24.43), ZftMCP(VO_BuffCStr), ZftMCP(VI_NowCnt), 20250906, wchar_t(0)); + #else + cout<<"# Use auto keyword for ZtStTuple<> variable"<