diff --git a/ZCppMain/ZMainHead.H b/ZCppMain/ZMainHead.H index 321a9f2..836daa1 100644 --- a/ZCppMain/ZMainHead.H +++ b/ZCppMain/ZMainHead.H @@ -725,7 +725,8 @@ namespace ZNsMain ( const TTypeChar* ApcLeft , TTypeLength AI_LeftLength , const TTypeChar* ApcRight, TTypeLength AI_RightLength - ) /*####################################################################*/ + ) + /*######################################################################*/ { if(AI_LeftLength<1 && AI_RightLength<1) return ZNsEnum::ZECompareResult_Equal; @@ -748,7 +749,72 @@ namespace ZNsMain ( const TTypeChar* ApcLeft , TTypeLength AI_LeftLength, const TTypeChar* ApcRight, TTypeLength AI_RightLength - ) ######################################################################*/ + ) + ########################################################################*/ + + + /* 어떤 변수를 강제적으로 참조로 인식하게 하는 클래스. 인수를 참조로 + 넘어가게 하고 싶을 때 사용한다. class ZtCCheckRef 에서 사용하고 있다. + -- 2021-04-10 16:15 + */ + template class ZtCRef + { + public : + typedef TType& TypeData; + typedef TType TypeRaw ; + private: + TypeData mr_Data; + public : + ZtCRef(TypeData AR_TypeData) : mr_Data(AR_TypeData){} + public : + TypeData GetData(){return mr_Data;} + };/* + template class ZtCRef*/ + + + /* template 인수에 ZtCRef 가 있으면, 해당 값을 참조로 인식하고 + 그렇지 않으면, 일반적인 복사해서 전달되는 값으로 인식한다. + + ZtCArray.H 같은 자료 구조에서 사용하고 있다. + + -- 2021-04-10 16:15 + */ + 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 > + { + public : + typedef TType& TypeData; + typedef TType TypeRaw ; + typedef ZtCRef ZCRef ; + 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;} + static TypeData PassData(ZCRef& AO_Data){return AO_Data.GetData();} + static TypeData PassData(const ZCRef& AO_Data) + {return (const_cast(AO_Data)).GetData();} + };/* + template class ZtCCheckRef< ZtCRef >*/ namespace ZNsType @@ -851,6 +917,35 @@ namespace ZNsMain { public: typedef TTypeNow TypeData; public: enum{ZEUseCRTP=0}; }; + /* template 인수에 ZtCRef 가 있으면, 해당 값을 참조로 인식하고 + 그렇지 않으면, 일반적인 복사해서 전달되는 값으로 인식한다. + + class ZtCCheckRef 와는 달리, 멤버 변수를 갖지 않고, 순수하게 + typedef 만 있다. + + -- 2021-04-10 16:15 + */ + template class ZtCTypeCheckRef + { + public : + typedef TType TypeData; + typedef TType TypeRaw ; + public : + };/* + template class ZtCTypeCheckRef*/ + + + template class ZtCTypeCheckRef< ZtCRef > + { + public : + typedef TType& TypeData; + typedef TType TypeRaw ; + typedef ZtCRef ZCRef ; + public : + };/* + template class ZtCTypeCheckRef< ZtCRef >*/ + + namespace ZNsTmplParam { /*////////////////////////////////////////////////////////////////////////// @@ -893,73 +988,78 @@ namespace ZNsMain { public: - typedef TTypeArgu1 TypeArgu1 ; typedef TTypeArgu2 TypeArgu2 ; - typedef TTypeArgu3 TypeArgu3 ; typedef TTypeArgu4 TypeArgu4 ; - typedef TTypeArgu5 TypeArgu5 ; typedef TTypeArgu6 TypeArgu6 ; - typedef TTypeArgu7 TypeArgu7 ; typedef TTypeArgu8 TypeArgu8 ; - typedef TTypeArgu9 TypeArgu9 ; typedef TTypeArgu10 TypeArgu10; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu1 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu2 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu3 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu4 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu5 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu6 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu7 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu8 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu9 ; + typedef typename ZtCTypeCheckRef::TypeData TypeArgu10; struct ZStArguments2{ ZStArguments2( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2): _1(AR_TypeArgu1), _2(AR_TypeArgu2){} - TypeArgu1& _1; TypeArgu2& _2; + TypeArgu1 _1; TypeArgu2 _2; };/* struct ZStArguments2*/ struct ZStArguments3{ZStArguments3( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2, TypeArgu3& AR_TypeArgu3): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2, TypeArgu3 AR_TypeArgu3): _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3){} - TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; + TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3; };/* struct ZStArguments3*/ struct ZStArguments4{ZStArguments4( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2, TypeArgu3& AR_TypeArgu3, TypeArgu4& AR_TypeArgu4): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2, TypeArgu3 AR_TypeArgu3, TypeArgu4 AR_TypeArgu4): _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3), _4(AR_TypeArgu4){} - TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; TypeArgu4& _4; + TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3; TypeArgu4 _4; };/* struct ZStArguments4*/ struct ZStArguments5{ZStArguments5( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2, TypeArgu3& AR_TypeArgu3, TypeArgu4& AR_TypeArgu4, TypeArgu5& AR_TypeArgu5): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2, TypeArgu3 AR_TypeArgu3, TypeArgu4 AR_TypeArgu4, TypeArgu5 AR_TypeArgu5): _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3), _4(AR_TypeArgu4), _5(AR_TypeArgu5){} - TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; TypeArgu4& _4; TypeArgu5& _5; + TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3; TypeArgu4 _4; TypeArgu5 _5; };/* struct ZStArguments5*/ struct ZStArguments6{ZStArguments6( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2, TypeArgu3& AR_TypeArgu3, TypeArgu4& AR_TypeArgu4, TypeArgu5& AR_TypeArgu5, TypeArgu6& AR_TypeArgu6): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2, TypeArgu3 AR_TypeArgu3, TypeArgu4 AR_TypeArgu4, TypeArgu5 AR_TypeArgu5, TypeArgu6 AR_TypeArgu6): _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3), _4(AR_TypeArgu4), _5(AR_TypeArgu5), _6(AR_TypeArgu6){} - TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; TypeArgu4& _4; TypeArgu5& _5; TypeArgu6& _6; + TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3; TypeArgu4 _4; TypeArgu5 _5; TypeArgu6 _6; };/* struct ZStArguments6*/ struct ZStArguments7{ZStArguments7( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2, TypeArgu3& AR_TypeArgu3, TypeArgu4& AR_TypeArgu4, TypeArgu5& AR_TypeArgu5, TypeArgu6& AR_TypeArgu6, TypeArgu7& AR_TypeArgu7): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2, TypeArgu3 AR_TypeArgu3, TypeArgu4 AR_TypeArgu4, TypeArgu5 AR_TypeArgu5, TypeArgu6 AR_TypeArgu6, TypeArgu7& AR_TypeArgu7): _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3), _4(AR_TypeArgu4), _5(AR_TypeArgu5), _6(AR_TypeArgu6), _7(AR_TypeArgu7){} - TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; TypeArgu4& _4; TypeArgu5& _5; TypeArgu6& _6; TypeArgu7& _7; + TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3; TypeArgu4 _4; TypeArgu5 _5; TypeArgu6 _6; TypeArgu7 _7; };/* struct ZStArguments7*/ struct ZStArguments8{ZStArguments8( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2, TypeArgu3& AR_TypeArgu3, TypeArgu4& AR_TypeArgu4, TypeArgu5& AR_TypeArgu5, TypeArgu6& AR_TypeArgu6, TypeArgu7& AR_TypeArgu7, TypeArgu8& AR_TypeArgu8): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2, TypeArgu3 AR_TypeArgu3, TypeArgu4 AR_TypeArgu4, TypeArgu5 AR_TypeArgu5, TypeArgu6 AR_TypeArgu6, TypeArgu7& AR_TypeArgu7, TypeArgu8& AR_TypeArgu8): _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3), _4(AR_TypeArgu4), _5(AR_TypeArgu5), _6(AR_TypeArgu6), _7(AR_TypeArgu7), _8(AR_TypeArgu8){} - TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; TypeArgu4& _4; TypeArgu5& _5; TypeArgu6& _6; TypeArgu7& _7; TypeArgu8& _8; + TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3; TypeArgu4 _4; TypeArgu5 _5; TypeArgu6 _6; TypeArgu7 _7; TypeArgu8 _8; };/* struct ZStArguments8*/ struct ZStArguments9{ZStArguments9( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2, TypeArgu3& AR_TypeArgu3, TypeArgu4& AR_TypeArgu4, TypeArgu5& AR_TypeArgu5, TypeArgu6& AR_TypeArgu6, TypeArgu7& AR_TypeArgu7, TypeArgu8& AR_TypeArgu8, TypeArgu9& AR_TypeArgu9): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2, TypeArgu3 AR_TypeArgu3, TypeArgu4 AR_TypeArgu4, TypeArgu5 AR_TypeArgu5, TypeArgu6 AR_TypeArgu6, TypeArgu7& AR_TypeArgu7, TypeArgu8& AR_TypeArgu8, TypeArgu9 AR_TypeArgu9): _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3), _4(AR_TypeArgu4), _5(AR_TypeArgu5), _6(AR_TypeArgu6), _7(AR_TypeArgu7), _8(AR_TypeArgu8), _9(AR_TypeArgu9){} - TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; TypeArgu4& _4; TypeArgu5& _5; TypeArgu6& _6; TypeArgu7& _7; TypeArgu8& _8; TypeArgu9& _9; + TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3; TypeArgu4 _4; TypeArgu5 _5; TypeArgu6 _6; TypeArgu7 _7; TypeArgu8 _8; TypeArgu9 _9; };/* struct ZStArguments9*/ struct ZStArguments10{ZStArguments10( - TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2, TypeArgu3& AR_TypeArgu3, TypeArgu4& AR_TypeArgu4, TypeArgu5& AR_TypeArgu5, TypeArgu6& AR_TypeArgu6, TypeArgu7& AR_TypeArgu7, TypeArgu8& AR_TypeArgu8, TypeArgu9& AR_TypeArgu9, TypeArgu10& AR_TypeArgu10): + TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2, TypeArgu3 AR_TypeArgu3, TypeArgu4 AR_TypeArgu4, TypeArgu5 AR_TypeArgu5, TypeArgu6 AR_TypeArgu6, TypeArgu7& AR_TypeArgu7, TypeArgu8& AR_TypeArgu8, TypeArgu9 AR_TypeArgu9, TypeArgu10 AR_TypeArgu10): _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3), _4(AR_TypeArgu4), _5(AR_TypeArgu5), _6(AR_TypeArgu6), _7(AR_TypeArgu7), _8(AR_TypeArgu8), _9(AR_TypeArgu9), _10(AR_TypeArgu10){} - TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; TypeArgu4& _4; TypeArgu5& _5; TypeArgu6& _6; TypeArgu7& _7; TypeArgu8& _8; TypeArgu9& _9; TypeArgu10& _10; + TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3; TypeArgu4 _4; TypeArgu5 _5; TypeArgu6 _6; TypeArgu7 _7; TypeArgu8 _8; TypeArgu9 _9; TypeArgu10 _10; };/* struct ZStArguments10*/ @@ -977,70 +1077,6 @@ namespace ZNsMain namespace ZNsType*/ - /* 어떤 변수를 강제적으로 참조로 인식하게 하는 클래스. 인수를 참조로 - 넘어가게 하고 싶을 때 사용한다. class ZtCCheckRef 에서 사용하고 있다. - -- 2021-04-10 16:15 - */ - template class ZtCRef - { - public : - typedef TType& TypeData; - typedef TType TypeRaw ; - private: - TypeData mr_Data; - public : - ZtCRef(TypeData AR_TypeData) : mr_Data(AR_TypeData){} - public : - TypeData GetData(){return mr_Data;} - };/* - template class ZtCRef*/ - - - /* template 인수에 ZtCRef 가 있으면, 해당 값을 참조로 인식하고 - 그렇지 않으면, 일반적인 복사해서 전달되는 값으로 인식한다. - - ZtCArray.H 같은 자료 구조에서 사용하고 있다. - - -- 2021-04-10 16:15 - */ - 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 > - { - public : - typedef TType& TypeData; - typedef TType TypeRaw ; - typedef ZtCRef ZCRef ; - 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;} - static TypeData PassData(ZCRef& AO_Data){return AO_Data.GetData();} - static TypeData PassData(const ZCRef& AO_Data) - {return (const_cast(AO_Data)).GetData();} - };/* - template class ZtCCheckRef< ZtCRef >*/ - - template class ZtCArguBind { public: @@ -1299,12 +1335,15 @@ namespace ZNsMain > struct ZtStTuple //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + + TypeData1 _1; TypeData2 _2; ZtStTuple(){} ZtStTuple( - Type1 _T1, Type2 _T2):_1(_T1), _2(_T2){} + TypeData1 _T1, TypeData2 _T2) : _1(_T1), _2(_T2) {} };/* template< typename Type1, typename Type2 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// > @@ -1314,12 +1353,17 @@ namespace ZNsMain > struct ZtStTuple ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; Type3 _3; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData3 ; + + TypeData1 _1; TypeData2 _2; TypeData3 _3; ZtStTuple(){} ZtStTuple( - Type1 _T1, Type2 _T2, Type3 _T3):_1(_T1), _2(_T2), _3(_T3){} + TypeData1 _T1, TypeData2 _T2, TypeData3 _T3) : + _1(_T1), _2(_T2), _3(_T3){} };/* template< typename Type1, typename Type2, typename Type3 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// > @@ -1329,12 +1373,18 @@ namespace ZNsMain > struct ZtStTuple ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; Type3 _3; Type4 _4; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData3 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData4 ; + + TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; ZtStTuple(){} ZtStTuple( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4):_1(_T1), _2(_T2), _3(_T3), _4(_T4){} + TypeData1 _T1, TypeData2 _T2, TypeData3 _T3, TypeData4 _T4) : + _1(_T1), _2(_T2), _3(_T3), _4(_T4) {} };/* template< typename Type1, typename Type2, typename Type3, typename Type4 //////////////////////////////////////////////////////////////////////////////////////////////////////// > @@ -1344,12 +1394,19 @@ namespace ZNsMain > struct ZtStTuple /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData3 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData4 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData5 ; + + TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; TypeData5 _5; ZtStTuple(){} ZtStTuple( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5):_1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5){} + TypeData1 _T1, TypeData2 _T2, TypeData3 _T3, TypeData4 _T4, TypeData5 _T5) : + _1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5){} };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5 //////////////////////////////////////////////////////////////////////////////////////// > @@ -1359,12 +1416,22 @@ namespace ZNsMain > struct ZtStTuple //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData3 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData4 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData5 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData6 ; + + 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):_1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5), _6(_T6){} + TypeData1 _T1, TypeData2 _T2, TypeData3 _T3 , + TypeData4 _T4, TypeData5 _T5, TypeData6 _T6) : + _1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5), _6(_T6) {} };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6 //////////////////////////////////////////////////////////////////////// > @@ -1374,12 +1441,23 @@ namespace ZNsMain > struct ZtStTuple ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; Type7 _7; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData3 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData4 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData5 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData6 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData7 ; + + TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; + TypeData5 _5; TypeData6 _6; TypeData7 _7; ZtStTuple(){} ZtStTuple( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7):_1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5), _6(_T6), _7(_T7){} + TypeData1 _T1, TypeData2 _T2, TypeData3 _T3, TypeData4 _T4, + TypeData5 _T5, TypeData6 _T6, TypeData7 _T7) : + _1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5), _6(_T6), _7(_T7) {} };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7 //////////////////////////////////////////////////////// > @@ -1389,12 +1467,25 @@ namespace ZNsMain > struct ZtStTuple ////////////////////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; Type7 _7; Type8 _8; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData3 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData4 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData5 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData6 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData7 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData8 ; + + TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; + TypeData5 _5; TypeData6 _6; TypeData7 _7; TypeData8 _8; ZtStTuple(){} ZtStTuple( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8):_1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5), _6(_T6), _7(_T7), _8(_T8){} + TypeData1 _T1, TypeData2 _T2, TypeData3 _T3, TypeData4 _T4, + TypeData5 _T5, TypeData6 _T6, TypeData7 _T7, TypeData8 _T8) : + _1(_T1), _2(_T2), _3(_T3), _4(_T4) , + _5(_T5), _6(_T6), _7(_T7), _8(_T8) {} };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8 //////////////////////////////////////// > @@ -1404,12 +1495,28 @@ namespace ZNsMain > struct ZtStTuple /////////////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; Type7 _7; Type8 _8; Type9 _9; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData3 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData4 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData5 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData6 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData7 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData8 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData9 ; + + TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; TypeData5 _5; + TypeData6 _6; TypeData7 _7; TypeData8 _8; TypeData9 _9; ZtStTuple(){} - ZtStTuple( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9) : _1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5), _6(_T6), _7(_T7), _8(_T8), _9(_T9){} + ZtStTuple + ( + TypeData1 _T1, TypeData2 _T2, TypeData3 _T3, TypeData4 _T4, + TypeData5 _T5, TypeData6 _T6, TypeData7 _T7, TypeData8 _T8, TypeData9 _T9 + ) : + _1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5), + _6(_T6), _7(_T7), _8(_T8), _9(_T9) {} };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9 > @@ -1419,13 +1526,29 @@ namespace ZNsMain > struct ZtStTuple /////////////////////////////////////////////////////////////////////////////////////////// { - Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; Type7 _7; Type8 _8; Type9 _9; Type9 _10; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData1 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData2 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData3 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData4 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData5 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData6 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData7 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData8 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData9 ; + typedef typename ZNsType::ZtCTypeCheckRef::TypeData TypeData10; - ZtStTuple(){} + TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; TypeData5 _5 ; + TypeData6 _6; TypeData7 _7; TypeData8 _8; TypeData9 _9; TypeData9 _10; - ZtStTuple( - Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10) : - _1(_T1), _2(_T2), _3(_T3), _4(_T4), _5(_T5), _6(_T6), _7(_T7), _8(_T8), _9(_T9), _10(_T10){} + ZtStTuple< + Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10>(){} + + ZtStTuple< + Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10>( + TypeData1 _T1, TypeData2 _T2, TypeData3 _T3, TypeData4 _T4, TypeData5 _T5 , + TypeData6 _T6, TypeData7 _T7, TypeData8 _T8, TypeData9 _T9, TypeData10 _T10) : + _1(_T1), _2(_T2), _3(_T3), _4(_T4), _5 (_T5 ), + _6(_T6), _7(_T7), _8(_T8), _9(_T9), _10(_T10) {} };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10 > @@ -1434,150 +1557,174 @@ namespace ZNsMain template< typename Type1, typename Type2 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2 + ) { - ZtStTuple VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; - VO_ZtStTuple._2=AO_Type2; return VO_ZtStTuple; + return ZtStTuple(AO_Type1, AO_Type2); };/* template< typename Type1, typename Type2 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2) */ + ZtStTuple ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2) */ template< typename Type1, typename Type2, typename Type3 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type3 + ) { - ZtStTuple VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; - VO_ZtStTuple._2=AO_Type2; - VO_ZtStTuple._3=AO_Type3; return VO_ZtStTuple; + return ZtStTuple(AO_Type1, AO_Type2, AO_Type3); };/* template< typename Type1, typename Type2, typename Type3 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type2 AO_Type3) */ + ZtStTuple ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type2 AO_Type3) */ template< typename Type1, typename Type2, typename Type3, typename Type4 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type3, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type4 + ) { - ZtStTuple VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; VO_ZtStTuple._2=AO_Type2; - VO_ZtStTuple._3=AO_Type3; VO_ZtStTuple._4=AO_Type4; - - return VO_ZtStTuple; + return ZtStTuple + (AO_Type1, AO_Type2, AO_Type3, AO_Type4); };/* template< typename Type1, typename Type2, typename Type3, typename Type4 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4) */ + ZtStTuple ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4) */ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type3, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type4, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type5 + ) { - ZtStTuple VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; VO_ZtStTuple._2=AO_Type2; - VO_ZtStTuple._3=AO_Type3; VO_ZtStTuple._4=AO_Type4; - VO_ZtStTuple._5=AO_Type5; - - return VO_ZtStTuple; + return ZtStTuple + (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5); };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5) */ + ZtStTuple ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5) */ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type3, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type4, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type5, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type6 + ) { - ZtStTuple< - Type1, Type2, Type3, Type4, Type5, Type6> VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; VO_ZtStTuple._2=AO_Type2; - VO_ZtStTuple._3=AO_Type3; VO_ZtStTuple._4=AO_Type4; - VO_ZtStTuple._5=AO_Type5; VO_ZtStTuple._6=AO_Type6; return VO_ZtStTuple; + return ZtStTuple + (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6); };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6AO_Type6) */ + ZtStTuple ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6AO_Type6) */ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type3, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type4, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type5, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type6, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type7 + ) { - ZtStTuple< - Type1, Type2, Type3, Type4, Type5, Type6, Type7> VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; VO_ZtStTuple._2=AO_Type2; - VO_ZtStTuple._3=AO_Type3; VO_ZtStTuple._4=AO_Type4; - VO_ZtStTuple._5=AO_Type5; VO_ZtStTuple._6=AO_Type6; - VO_ZtStTuple._7=AO_Type7; - - return VO_ZtStTuple; + return ZtStTuple + (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6, AO_Type7); };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7 > - ZtStTuple MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7) */ + ZtStTuple ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7) */ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8 > - ZtStTuple MakeArguTuple( - Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7, Type8 AO_Type8) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type3, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type4, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type5, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type6, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type7, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type8 + ) { - ZtStTuple< - Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8> VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; VO_ZtStTuple._2=AO_Type2; - VO_ZtStTuple._3=AO_Type3; VO_ZtStTuple._4=AO_Type4; - VO_ZtStTuple._5=AO_Type5; VO_ZtStTuple._6=AO_Type6; - VO_ZtStTuple._7=AO_Type7; VO_ZtStTuple._8=AO_Type8; return VO_ZtStTuple; + return ZtStTuple + (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6, AO_Type7, AO_Type8); };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8 > - ZtStTuple MakeArguTuple( + ZtStTuple ZftMakeArguTuple( Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7, Type8 AO_Type8) */ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9 > - ZtStTuple MakeArguTuple( - Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7, Type8 AO_Type8, Type8 AO_Type9) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type3, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type4, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type5, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type6, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type7, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type8, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type9 + ) { - ZtStTuple< - Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9> VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; VO_ZtStTuple._2=AO_Type2; - VO_ZtStTuple._3=AO_Type3; VO_ZtStTuple._4=AO_Type4; - VO_ZtStTuple._5=AO_Type5; VO_ZtStTuple._6=AO_Type6; - VO_ZtStTuple._7=AO_Type7; VO_ZtStTuple._8=AO_Type8; VO_ZtStTuple._9=AO_Type9; - - return VO_ZtStTuple; + return ZtStTuple + (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6, AO_Type7, AO_Type8, AO_Type9); };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9 > - ZtStTuple MakeArguTuple( + ZtStTuple ZftMakeArguTuple( Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7, Type8 AO_Type8, Type8 AO_Type9) */ template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10 > - ZtStTuple MakeArguTuple( - Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7, Type8 AO_Type8, Type9 AO_Type9, Type1 AO_Type10) + ZtStTuple ZftMakeArguTuple + ( + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type1, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type2, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type3, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type4, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type5, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type6, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type7, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type8, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type9, + typename ZNsType::ZtCTypeCheckRef::TypeData AO_Type10 + ) { - ZtStTuple< - Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10> VO_ZtStTuple; - - VO_ZtStTuple._1=AO_Type1; VO_ZtStTuple._2 =AO_Type2 ; - VO_ZtStTuple._3=AO_Type3; VO_ZtStTuple._4 =AO_Type4 ; - VO_ZtStTuple._5=AO_Type5; VO_ZtStTuple._6 =AO_Type6 ; - VO_ZtStTuple._7=AO_Type7; VO_ZtStTuple._8 =AO_Type8 ; - VO_ZtStTuple._9=AO_Type9; VO_ZtStTuple._10=AO_Type10; return VO_ZtStTuple; + return ZtStTuple + (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6, AO_Type7, AO_Type8, AO_Type9, AO_Type10); };/* template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10 > - ZtStTuple MakeArguTuple( + ZtStTuple ZftMakeArguTuple( Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7, Type8 AO_Type8, Type9 AO_Type9, Type1 AO_Type10) */ diff --git a/ZCppMain/test.cpp b/ZCppMain/test.cpp index 1026cf1..cdef318 100644 --- a/ZCppMain/test.cpp +++ b/ZCppMain/test.cpp @@ -145,6 +145,19 @@ int main(int ArgiCnt, char** AppArgu) VO_IntArr.AddTail(983); + + typedef ZNsMain::ZtStTuple > ZStTuple2; + + int i=1; + int& j=i; + + ZStTuple2 VO_ZStTuple2 = ZNsMain::ZftMakeArguTuple > + (i, ZNsMain::ZtCRef(j).GetData() ); + + VO_ZStTuple2._2 = 3; + + + typedef ZtStTuple ZCTuple; ZCTuple VO_CTuple; VO_CTuple._1 = 1;