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

This commit is contained in:
2025-10-19 19:47:16 +09:00
parent 5e34c2f5cc
commit 56960ed38f

View File

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