edit ZMainHead.H etc

This commit is contained in:
2021-03-24 10:37:45 +09:00
parent 2b2e17494f
commit c73bcedb1b
2 changed files with 353 additions and 193 deletions

View File

@ -725,7 +725,8 @@ namespace ZNsMain
( (
const TTypeChar* ApcLeft , TTypeLength AI_LeftLength , const TTypeChar* ApcLeft , TTypeLength AI_LeftLength ,
const TTypeChar* ApcRight, TTypeLength AI_RightLength const TTypeChar* ApcRight, TTypeLength AI_RightLength
) /*####################################################################*/ )
/*######################################################################*/
{ {
if(AI_LeftLength<1 && AI_RightLength<1) return ZNsEnum::ZECompareResult_Equal; 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* ApcLeft , TTypeLength AI_LeftLength,
const TTypeChar* ApcRight, TTypeLength AI_RightLength const TTypeChar* ApcRight, TTypeLength AI_RightLength
) ######################################################################*/ )
########################################################################*/
/* 어떤 변수를 강제적으로 참조로 인식하게 하는 클래스. 인수를 참조로
넘어가게 하고 싶을 때 사용한다. class ZtCCheckRef 에서 사용하고 있다.
-- 2021-04-10 16:15
*/
template<typename TType> 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<typename TType> class ZtCRef*/
/* template 인수에 ZtCRef 가 있으면, 해당 값을 참조로 인식하고
그렇지 않으면, 일반적인 복사해서 전달되는 값으로 인식한다.
ZtCArray.H 같은 자료 구조에서 사용하고 있다.
-- 2021-04-10 16:15
*/
template<typename TType> 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<typename TType> class ZtCCheckRef*/
/* ZtCRef 전문화 */
template<typename TType> class ZtCCheckRef< ZtCRef<TType> >
{
public :
typedef TType& TypeData;
typedef TType TypeRaw ;
typedef ZtCRef<TType> 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<ZCRef>(AO_Data)).GetData();}
};/*
template<typename TType> class ZtCCheckRef< ZtCRef<TType> >*/
namespace ZNsType namespace ZNsType
@ -851,6 +917,35 @@ namespace ZNsMain
{ public: typedef TTypeNow TypeData; public: enum{ZEUseCRTP=0}; }; { public: typedef TTypeNow TypeData; public: enum{ZEUseCRTP=0}; };
/* template 인수에 ZtCRef 가 있으면, 해당 값을 참조로 인식하고
그렇지 않으면, 일반적인 복사해서 전달되는 값으로 인식한다.
class ZtCCheckRef 와는 달리, 멤버 변수를 갖지 않고, 순수하게
typedef 만 있다.
-- 2021-04-10 16:15
*/
template<typename TType> class ZtCTypeCheckRef
{
public :
typedef TType TypeData;
typedef TType TypeRaw ;
public :
};/*
template<typename TType> class ZtCTypeCheckRef*/
template<typename TType> class ZtCTypeCheckRef< ZtCRef<TType> >
{
public :
typedef TType& TypeData;
typedef TType TypeRaw ;
typedef ZtCRef<TType> ZCRef ;
public :
};/*
template<typename TType> class ZtCTypeCheckRef< ZtCRef<TType> >*/
namespace ZNsTmplParam namespace ZNsTmplParam
{ {
/*////////////////////////////////////////////////////////////////////////// /*//////////////////////////////////////////////////////////////////////////
@ -893,73 +988,78 @@ namespace ZNsMain
{ {
public: public:
typedef TTypeArgu1 TypeArgu1 ; typedef TTypeArgu2 TypeArgu2 ; typedef typename ZtCTypeCheckRef<TTypeArgu1 >::TypeData TypeArgu1 ;
typedef TTypeArgu3 TypeArgu3 ; typedef TTypeArgu4 TypeArgu4 ; typedef typename ZtCTypeCheckRef<TTypeArgu2 >::TypeData TypeArgu2 ;
typedef TTypeArgu5 TypeArgu5 ; typedef TTypeArgu6 TypeArgu6 ; typedef typename ZtCTypeCheckRef<TTypeArgu3 >::TypeData TypeArgu3 ;
typedef TTypeArgu7 TypeArgu7 ; typedef TTypeArgu8 TypeArgu8 ; typedef typename ZtCTypeCheckRef<TTypeArgu4 >::TypeData TypeArgu4 ;
typedef TTypeArgu9 TypeArgu9 ; typedef TTypeArgu10 TypeArgu10; typedef typename ZtCTypeCheckRef<TTypeArgu5 >::TypeData TypeArgu5 ;
typedef typename ZtCTypeCheckRef<TTypeArgu6 >::TypeData TypeArgu6 ;
typedef typename ZtCTypeCheckRef<TTypeArgu7 >::TypeData TypeArgu7 ;
typedef typename ZtCTypeCheckRef<TTypeArgu8 >::TypeData TypeArgu8 ;
typedef typename ZtCTypeCheckRef<TTypeArgu9 >::TypeData TypeArgu9 ;
typedef typename ZtCTypeCheckRef<TTypeArgu10>::TypeData TypeArgu10;
struct ZStArguments2{ ZStArguments2( struct ZStArguments2{ ZStArguments2(
TypeArgu1& AR_TypeArgu1, TypeArgu2& AR_TypeArgu2): TypeArgu1 AR_TypeArgu1, TypeArgu2 AR_TypeArgu2):
_1(AR_TypeArgu1), _2(AR_TypeArgu2){} _1(AR_TypeArgu1), _2(AR_TypeArgu2){}
TypeArgu1& _1; TypeArgu2& _2; TypeArgu1 _1; TypeArgu2 _2;
};/* };/*
struct ZStArguments2*/ struct ZStArguments2*/
struct ZStArguments3{ZStArguments3( 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){} _1(AR_TypeArgu1), _2(AR_TypeArgu2), _3(AR_TypeArgu3){}
TypeArgu1& _1; TypeArgu2& _2; TypeArgu3& _3; TypeArgu1 _1; TypeArgu2 _2; TypeArgu3 _3;
};/* };/*
struct ZStArguments3*/ struct ZStArguments3*/
struct ZStArguments4{ZStArguments4( 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){} _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 ZStArguments4*/
struct ZStArguments5{ZStArguments5( 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){} _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 ZStArguments5*/
struct ZStArguments6{ZStArguments6( 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){} _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 ZStArguments6*/
struct ZStArguments7{ZStArguments7( 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){} _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 ZStArguments7*/
struct ZStArguments8{ZStArguments8( 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){} _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 ZStArguments8*/
struct ZStArguments9{ZStArguments9( 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){} _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 ZStArguments9*/
struct ZStArguments10{ZStArguments10( 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){} _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*/ struct ZStArguments10*/
@ -977,70 +1077,6 @@ namespace ZNsMain
namespace ZNsType*/ namespace ZNsType*/
/* 어떤 변수를 강제적으로 참조로 인식하게 하는 클래스. 인수를 참조로
넘어가게 하고 싶을 때 사용한다. class ZtCCheckRef 에서 사용하고 있다.
-- 2021-04-10 16:15
*/
template<typename TType> 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<typename TType> class ZtCRef*/
/* template 인수에 ZtCRef 가 있으면, 해당 값을 참조로 인식하고
그렇지 않으면, 일반적인 복사해서 전달되는 값으로 인식한다.
ZtCArray.H 같은 자료 구조에서 사용하고 있다.
-- 2021-04-10 16:15
*/
template<typename TType> 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<typename TType> class ZtCCheckRef*/
/* ZtCRef 전문화 */
template<typename TType> class ZtCCheckRef< ZtCRef<TType> >
{
public :
typedef TType& TypeData;
typedef TType TypeRaw ;
typedef ZtCRef<TType> 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<ZCRef>(AO_Data)).GetData();}
};/*
template<typename TType> class ZtCCheckRef< ZtCRef<TType> >*/
template<typename TClassExec> class ZtCArguBind template<typename TClassExec> class ZtCArguBind
{ {
public: public:
@ -1299,12 +1335,15 @@ namespace ZNsMain
> >
struct ZtStTuple<Type1, Type2> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; typedef typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData TypeData2 ;
TypeData1 _1; TypeData2 _2;
ZtStTuple<Type1, Type2>(){} ZtStTuple<Type1, Type2>(){}
ZtStTuple<Type1, Type2>( ZtStTuple<Type1, Type2>(
Type1 _T1, Type2 _T2):_1(_T1), _2(_T2){} TypeData1 _T1, TypeData2 _T2) : _1(_T1), _2(_T2) {}
};/* };/*
template< typename Type1, typename Type2 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// template< typename Type1, typename Type2 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> >
@ -1314,12 +1353,17 @@ namespace ZNsMain
> >
struct ZtStTuple<Type1, Type2, Type3> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2, Type3> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; Type3 _3; typedef typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData TypeData2 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData TypeData3 ;
TypeData1 _1; TypeData2 _2; TypeData3 _3;
ZtStTuple<Type1, Type2, Type3>(){} ZtStTuple<Type1, Type2, Type3>(){}
ZtStTuple<Type1, Type2, Type3>( ZtStTuple<Type1, Type2, Type3>(
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 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// template< typename Type1, typename Type2, typename Type3 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
> >
@ -1329,12 +1373,18 @@ namespace ZNsMain
> >
struct ZtStTuple<Type1, Type2, Type3, Type4> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2, Type3, Type4> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; Type3 _3; Type4 _4; typedef typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData TypeData2 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData TypeData3 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData TypeData4 ;
TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4;
ZtStTuple<Type1, Type2, Type3, Type4>(){} ZtStTuple<Type1, Type2, Type3, Type4>(){}
ZtStTuple<Type1, Type2, Type3, Type4>( ZtStTuple<Type1, Type2, Type3, Type4>(
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 //////////////////////////////////////////////////////////////////////////////////////////////////////// template< typename Type1, typename Type2, typename Type3, typename Type4 ////////////////////////////////////////////////////////////////////////////////////////////////////////
> >
@ -1344,12 +1394,19 @@ namespace ZNsMain
> >
struct ZtStTuple<Type1, Type2, Type3, Type4, Type5> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2, Type3, Type4, Type5> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; typedef typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData TypeData2 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData TypeData3 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData TypeData4 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData TypeData5 ;
TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; TypeData5 _5;
ZtStTuple<Type1, Type2, Type3, Type4, Type5>(){} ZtStTuple<Type1, Type2, Type3, Type4, Type5>(){}
ZtStTuple<Type1, Type2, Type3, Type4, Type5>( ZtStTuple<Type1, Type2, Type3, Type4, Type5>(
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 //////////////////////////////////////////////////////////////////////////////////////// template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5 ////////////////////////////////////////////////////////////////////////////////////////
> >
@ -1359,12 +1416,22 @@ namespace ZNsMain
> >
struct ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6> ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; typedef typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData TypeData2 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData TypeData3 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData TypeData4 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData TypeData5 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type6>::TypeData TypeData6 ;
TypeData1 _1; TypeData2 _2; TypeData3 _3;
TypeData4 _4; TypeData5 _5; TypeData6 _6;
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6>(){} ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6>(){}
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6>( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6>(
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 //////////////////////////////////////////////////////////////////////// template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6 ////////////////////////////////////////////////////////////////////////
> >
@ -1374,12 +1441,23 @@ namespace ZNsMain
> >
struct ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; Type7 _7; typedef typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData TypeData2 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData TypeData3 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData TypeData4 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData TypeData5 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type6>::TypeData TypeData6 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type7>::TypeData TypeData7 ;
TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4;
TypeData5 _5; TypeData6 _6; TypeData7 _7;
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7>(){} ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7>(){}
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7>( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7>(
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 //////////////////////////////////////////////////////// template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7 ////////////////////////////////////////////////////////
> >
@ -1389,12 +1467,25 @@ namespace ZNsMain
> >
struct ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8> ////////////////////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8> //////////////////////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; Type7 _7; Type8 _8; typedef typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData TypeData2 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData TypeData3 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData TypeData4 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData TypeData5 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type6>::TypeData TypeData6 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type7>::TypeData TypeData7 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type8>::TypeData TypeData8 ;
TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4;
TypeData5 _5; TypeData6 _6; TypeData7 _7; TypeData8 _8;
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8>(){} ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8>(){}
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8>( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8>(
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 //////////////////////////////////////// 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, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9> /////////////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9> ///////////////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; Type7 _7; Type8 _8; Type9 _9; typedef typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData TypeData2 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData TypeData3 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData TypeData4 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData TypeData5 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type6>::TypeData TypeData6 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type7>::TypeData TypeData7 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type8>::TypeData TypeData8 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type9>::TypeData TypeData9 ;
TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; TypeData5 _5;
TypeData6 _6; TypeData7 _7; TypeData8 _8; TypeData9 _9;
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9>(){} ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9>(){}
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9>( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9>
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){} (
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 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, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10> /////////////////////////////////////////////////////////////////////////////////////////// struct ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10> ///////////////////////////////////////////////////////////////////////////////////////////
{ {
Type1 _1; Type2 _2; Type3 _3; Type4 _4; Type5 _5; Type6 _6; Type7 _7; Type8 _8; Type9 _9; Type9 _10; typedef typename ZNsType::ZtCTypeCheckRef<Type1 >::TypeData TypeData1 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type2 >::TypeData TypeData2 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type3 >::TypeData TypeData3 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type4 >::TypeData TypeData4 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type5 >::TypeData TypeData5 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type6 >::TypeData TypeData6 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type7 >::TypeData TypeData7 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type8 >::TypeData TypeData8 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type9 >::TypeData TypeData9 ;
typedef typename ZNsType::ZtCTypeCheckRef<Type10>::TypeData TypeData10;
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10>(){} TypeData1 _1; TypeData2 _2; TypeData3 _3; TypeData4 _4; TypeData5 _5 ;
TypeData6 _6; TypeData7 _7; TypeData8 _8; TypeData9 _9; TypeData9 _10;
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10>( ZtStTuple<
Type1 _T1, Type2 _T2, Type3 _T3, Type4 _T4, Type5 _T5, Type6 _T6, Type7 _T7, Type8 _T8, Type9 _T9, Type10 _T10) : Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10>(){}
_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>(
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 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 template< typename Type1, typename Type2
> >
ZtStTuple<Type1, Type2> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2) ZtStTuple<Type1, Type2> ZftMakeArguTuple
(
typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData AO_Type2
)
{ {
ZtStTuple<Type1, Type2> VO_ZtStTuple; return ZtStTuple<Type1, Type2>(AO_Type1, AO_Type2);
VO_ZtStTuple._1=AO_Type1;
VO_ZtStTuple._2=AO_Type2; return VO_ZtStTuple;
};/* };/*
template< typename Type1, typename Type2 template< typename Type1, typename Type2
> >
ZtStTuple<Type1, Type2> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2) */ ZtStTuple<Type1, Type2> ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2) */
template< typename Type1, typename Type2, typename Type3 template< typename Type1, typename Type2, typename Type3
> >
ZtStTuple<Type1, Type2, Type3> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3) ZtStTuple<Type1, Type2, Type3> ZftMakeArguTuple
(
typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData AO_Type2,
typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData AO_Type3
)
{ {
ZtStTuple<Type1, Type2, Type3> VO_ZtStTuple; return ZtStTuple<Type1, Type2, Type3>(AO_Type1, AO_Type2, AO_Type3);
VO_ZtStTuple._1=AO_Type1;
VO_ZtStTuple._2=AO_Type2;
VO_ZtStTuple._3=AO_Type3; return VO_ZtStTuple;
};/* };/*
template< typename Type1, typename Type2, typename Type3 template< typename Type1, typename Type2, typename Type3
> >
ZtStTuple<Type1, Type2, Type3> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type2 AO_Type3) */ ZtStTuple<Type1, Type2, Type3> ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type2 AO_Type3) */
template< typename Type1, typename Type2, typename Type3, typename Type4 template< typename Type1, typename Type2, typename Type3, typename Type4
> >
ZtStTuple<Type1, Type2, Type3, Type4> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4) ZtStTuple<Type1, Type2, Type3, Type4> ZftMakeArguTuple
(
typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData AO_Type2,
typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData AO_Type3,
typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData AO_Type4
)
{ {
ZtStTuple<Type1, Type2, Type3, Type4> VO_ZtStTuple; return ZtStTuple<Type1, Type2, Type3, Type4>
(AO_Type1, AO_Type2, AO_Type3, AO_Type4);
VO_ZtStTuple._1=AO_Type1; VO_ZtStTuple._2=AO_Type2;
VO_ZtStTuple._3=AO_Type3; VO_ZtStTuple._4=AO_Type4;
return VO_ZtStTuple;
};/* };/*
template< typename Type1, typename Type2, typename Type3, typename Type4 template< typename Type1, typename Type2, typename Type3, typename Type4
> >
ZtStTuple<Type1, Type2, Type3, Type4> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4) */ ZtStTuple<Type1, Type2, Type3, Type4> ZftMakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4) */
template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5) ZtStTuple<Type1, Type2, Type3, Type4, Type5> ZftMakeArguTuple
(
typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData AO_Type2,
typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData AO_Type3,
typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData AO_Type4,
typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData AO_Type5
)
{ {
ZtStTuple<Type1, Type2, Type3, Type4, Type5> VO_ZtStTuple; return ZtStTuple<Type1, Type2, Type3, Type4, Type5>
(AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5);
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;
};/* };/*
template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5) */ ZtStTuple<Type1, Type2, Type3, Type4, Type5> 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 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6) ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6> ZftMakeArguTuple
(
typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData AO_Type2,
typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData AO_Type3,
typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData AO_Type4,
typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData AO_Type5,
typename ZNsType::ZtCTypeCheckRef<Type6>::TypeData AO_Type6
)
{ {
ZtStTuple< return ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6>
Type1, Type2, Type3, Type4, Type5, Type6> VO_ZtStTuple; (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6);
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;
};/* };/*
template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6AO_Type6) */ ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6> 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 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7) ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7> ZftMakeArguTuple
(
typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData AO_Type2,
typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData AO_Type3,
typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData AO_Type4,
typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData AO_Type5,
typename ZNsType::ZtCTypeCheckRef<Type6>::TypeData AO_Type6,
typename ZNsType::ZtCTypeCheckRef<Type7>::TypeData AO_Type7
)
{ {
ZtStTuple< return ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7>
Type1, Type2, Type3, Type4, Type5, Type6, Type7> VO_ZtStTuple; (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6, AO_Type7);
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;
};/* };/*
template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, typename Type7> MakeArguTuple(Type1 AO_Type1, Type2 AO_Type2, Type3 AO_Type3, Type4 AO_Type4, Type5 AO_Type5, Type6 AO_Type6, Type7 AO_Type7) */ ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, typename Type7> 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 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8> MakeArguTuple( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8> 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) (
typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData AO_Type2,
typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData AO_Type3,
typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData AO_Type4,
typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData AO_Type5,
typename ZNsType::ZtCTypeCheckRef<Type6>::TypeData AO_Type6,
typename ZNsType::ZtCTypeCheckRef<Type7>::TypeData AO_Type7,
typename ZNsType::ZtCTypeCheckRef<Type8>::TypeData AO_Type8
)
{ {
ZtStTuple< return ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8>
Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8> VO_ZtStTuple; (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6, AO_Type7, AO_Type8);
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;
};/* };/*
template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8> MakeArguTuple( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8> 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) */ 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 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9> MakeArguTuple( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9> 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) (
typename ZNsType::ZtCTypeCheckRef<Type1>::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2>::TypeData AO_Type2,
typename ZNsType::ZtCTypeCheckRef<Type3>::TypeData AO_Type3,
typename ZNsType::ZtCTypeCheckRef<Type4>::TypeData AO_Type4,
typename ZNsType::ZtCTypeCheckRef<Type5>::TypeData AO_Type5,
typename ZNsType::ZtCTypeCheckRef<Type6>::TypeData AO_Type6,
typename ZNsType::ZtCTypeCheckRef<Type7>::TypeData AO_Type7,
typename ZNsType::ZtCTypeCheckRef<Type8>::TypeData AO_Type8,
typename ZNsType::ZtCTypeCheckRef<Type9>::TypeData AO_Type9
)
{ {
ZtStTuple< return ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9>
Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9> VO_ZtStTuple; (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6, AO_Type7, AO_Type8, AO_Type9);
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;
};/* };/*
template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9> MakeArguTuple( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9> 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) */ 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 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10> MakeArguTuple( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10> 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) (
typename ZNsType::ZtCTypeCheckRef<Type1 >::TypeData AO_Type1,
typename ZNsType::ZtCTypeCheckRef<Type2 >::TypeData AO_Type2,
typename ZNsType::ZtCTypeCheckRef<Type3 >::TypeData AO_Type3,
typename ZNsType::ZtCTypeCheckRef<Type4 >::TypeData AO_Type4,
typename ZNsType::ZtCTypeCheckRef<Type5 >::TypeData AO_Type5,
typename ZNsType::ZtCTypeCheckRef<Type6 >::TypeData AO_Type6,
typename ZNsType::ZtCTypeCheckRef<Type7 >::TypeData AO_Type7,
typename ZNsType::ZtCTypeCheckRef<Type8 >::TypeData AO_Type8,
typename ZNsType::ZtCTypeCheckRef<Type9 >::TypeData AO_Type9,
typename ZNsType::ZtCTypeCheckRef<Type10>::TypeData AO_Type10
)
{ {
ZtStTuple< return ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10>
Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10> VO_ZtStTuple; (AO_Type1, AO_Type2, AO_Type3, AO_Type4, AO_Type5, AO_Type6, AO_Type7, AO_Type8, AO_Type9, AO_Type10);
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;
};/* };/*
template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10 template< typename Type1, typename Type2, typename Type3, typename Type4, typename Type5, typename Type6, typename Type7, typename Type8, typename Type9, typename Type10
> >
ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10> MakeArguTuple( ZtStTuple<Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Type9, Type10> 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) */ 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) */

View File

@ -145,6 +145,19 @@ int main(int ArgiCnt, char** AppArgu)
VO_IntArr.AddTail(983); VO_IntArr.AddTail(983);
typedef ZNsMain::ZtStTuple<int, ZNsMain::ZtCRef<int> > ZStTuple2;
int i=1;
int& j=i;
ZStTuple2 VO_ZStTuple2 = ZNsMain::ZftMakeArguTuple<int, ZNsMain::ZtCRef<int> >
(i, ZNsMain::ZtCRef<int>(j).GetData() );
VO_ZStTuple2._2 = 3;
typedef ZtStTuple<int, int> ZCTuple; typedef ZtStTuple<int, int> ZCTuple;
ZCTuple VO_CTuple; VO_CTuple._1 = 1; ZCTuple VO_CTuple; VO_CTuple._1 = 1;