commit 2025-10-19 19:44 edit a bit ZCppMain/ZMainHead.H

This commit is contained in:
2025-10-19 19:44:34 +09:00
parent f451a6a1e1
commit 5e34c2f5cc

View File

@ -1476,12 +1476,12 @@ namespace ZNsMain
TTypeChild 가 ZCEmpty 이거나 TTypebUseCRTP 이 false 이면, 아래가 된다. TTypeChild 가 ZCEmpty 이거나 TTypebUseCRTP 이 false 이면, 아래가 된다.
public: enum{ZEUseCRTP=0}; public: enum{ZEUseCRTP=0};
public: typedef TTypeNow TypeData; public: typedef TTypCurr TypeData;
public: typedef TTypeNow TypeBase; public: typedef TTypCurr TypeBase;
그리고 TTypeChild 가 ZCEmpty 이고 TTypebUseCRTP 이 false 인 경우도 전문화해주어야 한다. 그리고 TTypeChild 가 ZCEmpty 이고 TTypebUseCRTP 이 false 인 경우도 전문화해주어야 한다.
class ZtCTypeNowCRTP<TTypeNow, ZCEmpty, false> class ZtCTypeNowCRTP<TTypCurr, ZCEmpty, false>
■ 3번 template parameter 가 bool TTypebUseCRTP 인데, 만약 TTypeChild 가 유효한 자료형이라 ■ 3번 template parameter 가 bool TTypebUseCRTP 인데, 만약 TTypeChild 가 유효한 자료형이라
면, TTypebUseCRTP 이 true 인 것이 맞겠으나, DEBUG 등의 특수한 용도로 TTypebUseCRTP 을 면, TTypebUseCRTP 이 true 인 것이 맞겠으나, DEBUG 등의 특수한 용도로 TTypebUseCRTP 을
@ -1498,40 +1498,40 @@ namespace ZNsMain
#########################################################################################*/ #########################################################################################*/
template template
<typename TTypeNow, typename TTypeChild, bool TTypebUseCRTP> <typename TTypCurr, typename TTypeChild, bool TTypebUseCRTP>
class ZtCTypeNowCRTP class ZtCTypeNowCRTP
{ {
public: enum{ZEUseCRTP=(ZTypIntE)TTypebUseCRTP}; public: enum{ZEUseCRTP=(ZTypIntE)TTypebUseCRTP};
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
public: typedef TTypeChild TypeData; public: typedef TTypeChild TypeData;
public: typedef TTypeNow TypeBase; public: typedef TTypCurr TypeBase;
}; };
template template
<typename TTypeNow, typename TTypeChild> <typename TTypCurr, typename TTypeChild>
class ZtCTypeNowCRTP<TTypeNow, TTypeChild, false /*++*/ > class ZtCTypeNowCRTP<TTypCurr, TTypeChild, false /*++*/ >
{ {
public: enum{ZEUseCRTP=0}; public: enum{ZEUseCRTP=0};
public: typedef TTypeNow TypeData; public: typedef TTypCurr TypeData;
public: typedef TTypeNow TypeBase; public: typedef TTypCurr TypeBase;
}; };
template template
<typename TTypeNow, bool TTypebUseCRTP> <typename TTypCurr, bool TTypebUseCRTP>
class ZtCTypeNowCRTP<TTypeNow, ZCEmpty , TTypebUseCRTP> class ZtCTypeNowCRTP<TTypCurr, ZCEmpty , TTypebUseCRTP>
{ {
public: enum{ZEUseCRTP=0}; public: enum{ZEUseCRTP=0};
public: typedef TTypeNow TypeData; public: typedef TTypCurr TypeData;
public: typedef TTypeNow TypeBase; public: typedef TTypCurr TypeBase;
}; };
template template
<typename TTypeNow> <typename TTypCurr>
class ZtCTypeNowCRTP<TTypeNow, ZCEmpty , false /*++*/ > class ZtCTypeNowCRTP<TTypCurr, ZCEmpty , false /*++*/ >
{ {
public: enum{ZEUseCRTP=0}; public: enum{ZEUseCRTP=0};
public: typedef TTypeNow TypeData; public: typedef TTypCurr TypeData;
public: typedef TTypeNow TypeBase; public: typedef TTypCurr TypeBase;
}; };
///////////////////////////////////////////////////////// /////////////////////////////////////////////////////////
@ -3261,12 +3261,12 @@ namespace ZNsMain
template< typename TTypeNow, typename TTypeNextChain template< typename TTypCurr, typename TTypeNextChain
> >
class ZtCTypeChain /////////////////////////////////// class ZtCTypeChain ///////////////////////////////////
{ {
public : public :
typedef TTypeNow TypeData ; typedef TTypCurr TypeData ;
typedef ZtCTypeChain TypeChainNow ; typedef ZtCTypeChain TypeChainNow ;
typedef TTypeNextChain TypeChainNext ; typedef TTypeNextChain TypeChainNext ;
/************************************************************/ /************************************************************/
@ -3362,19 +3362,19 @@ namespace ZNsMain
public: public:
};/* };/*
template< typename TTypeNow, typename TTypeNextChain template< typename TTypCurr, typename TTypeNextChain
> >
class ZtCTypeChain /////////////////////////////////*/ class ZtCTypeChain /////////////////////////////////*/
template<typename TTypeNow> class ZtCTypeChain<TTypeNow, ZCEmpty> template<typename TTypCurr> class ZtCTypeChain<TTypCurr, ZCEmpty>
{ {
public : public :
/************************************************************/ /************************************************************/
typedef ZtCTypeChain <TTypeNow, ZCEmpty> ZCTypeChain; typedef ZtCTypeChain <TTypCurr, ZCEmpty> ZCTypeChain;
/************************************************************/ /************************************************************/
public : public :
typedef TTypeNow TypeData ; typedef TTypCurr TypeData ;
public : public :
typedef ZCTypeChain TypeChainNow ; typedef ZCTypeChain TypeChainNow ;
typedef ZCTypeChain TypeChainNext; typedef ZCTypeChain TypeChainNext;
@ -3430,7 +3430,7 @@ namespace ZNsMain
};/* };/*
template<typename TViewChain> class ZtCIterChain*/ template<typename TViewChain> class ZtCIterChain*/
};/* };/*
template<typename TTypeNow> class ZtCTypeChain<TTypeNow, ZCEmpty>*/ template<typename TTypCurr> class ZtCTypeChain<TTypCurr, ZCEmpty>*/
template<typename TTmplChain, typename TTypeView> template<typename TTmplChain, typename TTypeView>
@ -3614,12 +3614,12 @@ namespace ZNsMain
template /*########################################################*/ template /*########################################################*/
< <
typename TTypeNow, typename TTypeNextChain typename TTypCurr, typename TTypeNextChain
> >
class ZtCObjtChain : public TTypeNextChain ////////////////////////// class ZtCObjtChain : public TTypeNextChain //////////////////////////
{ {
public : public :
typedef TTypeNow TypeData ; typedef TTypCurr TypeData ;
typedef ZtCObjtChain TypeChainNow ; typedef ZtCObjtChain TypeChainNow ;
typedef TTypeNextChain TypeChainNext ; typedef TTypeNextChain TypeChainNext ;
/************************************************************/ /************************************************************/
@ -3715,19 +3715,19 @@ namespace ZNsMain
};/* };/*
template ############################################################ template ############################################################
< <
typename TTypeNow, typename TTypeNextChain typename TTypCurr, typename TTypeNextChain
> >
class ZtCObjtChain : public TTypeNextChain ////////////////////////*/ class ZtCObjtChain : public TTypeNextChain ////////////////////////*/
template /*########################################################*/ template /*########################################################*/
< typename TTypeNow > < typename TTypCurr >
class ZtCObjtChain<TTypeNow, ZCEmpty> /////////////////////////////// class ZtCObjtChain<TTypCurr, ZCEmpty> ///////////////////////////////
{ {
public : public :
typedef ZtCObjtChain<TTypeNow, ZCEmpty> ZCObjtChain; typedef ZtCObjtChain<TTypCurr, ZCEmpty> ZCObjtChain;
public : public :
typedef TTypeNow TypeData ; typedef TTypCurr TypeData ;
typedef ZCObjtChain TypeChainNow ; typedef ZCObjtChain TypeChainNow ;
typedef ZCObjtChain TypeChainNext ; typedef ZCObjtChain TypeChainNext ;
/************************************************************/ /************************************************************/
@ -3791,8 +3791,8 @@ namespace ZNsMain
public: public:
};/* };/*
template ############################################################ template ############################################################
< typename TTypeNow > < typename TTypCurr >
class ZtCObjtChain<TTypeNow, ZCEmpty> /////////////////////////////*/ class ZtCObjtChain<TTypCurr, ZCEmpty> /////////////////////////////*/
@ -3800,7 +3800,7 @@ namespace ZNsMain
■ class ZtCMiniValChain<> ■ class ZtCMiniValChain<>
자료형 TTypeNow 에 대하여, 기본값 TTypeVar 으로 자동 초기화하려는 자료형 TTypCurr 에 대하여, 기본값 TTypeVar 으로 자동 초기화하려는
목적으로 만들었으나, 기본 자료형 즉 int, long, char 에 대해서만 동 목적으로 만들었으나, 기본 자료형 즉 int, long, char 에 대해서만 동
작하고 class 에서는 동작하지 않는다. 리눅스에서는 double 형에 대해 작하고 class 에서는 동작하지 않는다. 리눅스에서는 double 형에 대해
서도 동작하지 않는다. -- 2025-10-18 00:17 서도 동작하지 않는다. -- 2025-10-18 00:17
@ -3837,12 +3837,12 @@ namespace ZNsMain
template /*########################################################*/ template /*########################################################*/
< <
typename TTypeNow, TTypeNow TTypeVar, typename TTypeNextChain typename TTypCurr, TTypCurr TTypeVar, typename TTypeNextChain
> >
class ZtCMiniValChain /////////////////////////////////////////////// class ZtCMiniValChain ///////////////////////////////////////////////
{ {
public : public :
typedef TTypeNow TypeData ; typedef TTypCurr TypeData ;
typedef ZtCMiniValChain TypeChainNow ; typedef ZtCMiniValChain TypeChainNow ;
typedef TTypeNextChain TypeChainNext ; typedef TTypeNextChain TypeChainNext ;
/************************************************************/ /************************************************************/
@ -3936,21 +3936,21 @@ namespace ZNsMain
};/* };/*
template ############################################################ template ############################################################
< <
typename TTypeNow, TTypeNow TTypeVar, typename TTypeNextChain typename TTypCurr, TTypCurr TTypeVar, typename TTypeNextChain
> >
class ZtCMiniValChain : public TTypeNextChain /////////////////////*/ class ZtCMiniValChain : public TTypeNextChain /////////////////////*/
template /*########################################################*/ template /*########################################################*/
< <
typename TTypeNow, TTypeNow TTypeVar typename TTypCurr, TTypCurr TTypeVar
> >
class ZtCMiniValChain<TTypeNow, TTypeVar, ZCEmpty> ////////////////// class ZtCMiniValChain<TTypCurr, TTypeVar, ZCEmpty> //////////////////
{ {
public : public :
typedef ZtCMiniValChain<TTypeNow, TTypeVar, ZCEmpty> ZCObjtChain; typedef ZtCMiniValChain<TTypCurr, TTypeVar, ZCEmpty> ZCObjtChain;
public : public :
typedef TTypeNow TypeData ; typedef TTypCurr TypeData ;
typedef ZCObjtChain TypeChainNow ; typedef ZCObjtChain TypeChainNow ;
typedef ZCObjtChain TypeChainNext ; typedef ZCObjtChain TypeChainNext ;
/************************************************************/ /************************************************************/
@ -4018,9 +4018,9 @@ namespace ZNsMain
};/* };/*
template ############################################################ template ############################################################
< <
typename TTypeNow, TTypeNow TTypeVar typename TTypCurr, TTypCurr TTypeVar
> >
class ZtCMiniValChain<TTypeNow, TTypeVar, ZCEmpty> ////////////////*/ class ZtCMiniValChain<TTypCurr, TTypeVar, ZCEmpty> ////////////////*/