commit 2025-10-19 19:47 edit a bit ZCppMain/ZMainHead.H
This commit is contained in:
@ -1476,12 +1476,12 @@ namespace ZNsMain
|
|||||||
TTypeChild 가 ZCEmpty 이거나 TTypebUseCRTP 이 false 이면, 아래가 된다.
|
TTypeChild 가 ZCEmpty 이거나 TTypebUseCRTP 이 false 이면, 아래가 된다.
|
||||||
|
|
||||||
public: enum{ZEUseCRTP=0};
|
public: enum{ZEUseCRTP=0};
|
||||||
public: typedef TTypCurr TypeData;
|
public: typedef TDataNow TypeData;
|
||||||
public: typedef TTypCurr TypeBase;
|
public: typedef TDataNow TypeBase;
|
||||||
|
|
||||||
그리고 TTypeChild 가 ZCEmpty 이고 TTypebUseCRTP 이 false 인 경우도 전문화해주어야 한다.
|
그리고 TTypeChild 가 ZCEmpty 이고 TTypebUseCRTP 이 false 인 경우도 전문화해주어야 한다.
|
||||||
|
|
||||||
class ZtCTypeNowCRTP<TTypCurr, ZCEmpty, false>
|
class ZtCTypeNowCRTP<TDataNow, 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 TTypCurr, typename TTypeChild, bool TTypebUseCRTP>
|
<typename TDataNow, 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 TTypCurr TypeBase;
|
public: typedef TDataNow TypeBase;
|
||||||
};
|
};
|
||||||
|
|
||||||
template
|
template
|
||||||
<typename TTypCurr, typename TTypeChild>
|
<typename TDataNow, typename TTypeChild>
|
||||||
class ZtCTypeNowCRTP<TTypCurr, TTypeChild, false /*++*/ >
|
class ZtCTypeNowCRTP<TDataNow, TTypeChild, false /*++*/ >
|
||||||
{
|
{
|
||||||
public: enum{ZEUseCRTP=0};
|
public: enum{ZEUseCRTP=0};
|
||||||
public: typedef TTypCurr TypeData;
|
public: typedef TDataNow TypeData;
|
||||||
public: typedef TTypCurr TypeBase;
|
public: typedef TDataNow TypeBase;
|
||||||
};
|
};
|
||||||
|
|
||||||
template
|
template
|
||||||
<typename TTypCurr, bool TTypebUseCRTP>
|
<typename TDataNow, bool TTypebUseCRTP>
|
||||||
class ZtCTypeNowCRTP<TTypCurr, ZCEmpty , TTypebUseCRTP>
|
class ZtCTypeNowCRTP<TDataNow, ZCEmpty , TTypebUseCRTP>
|
||||||
{
|
{
|
||||||
public: enum{ZEUseCRTP=0};
|
public: enum{ZEUseCRTP=0};
|
||||||
public: typedef TTypCurr TypeData;
|
public: typedef TDataNow TypeData;
|
||||||
public: typedef TTypCurr TypeBase;
|
public: typedef TDataNow TypeBase;
|
||||||
};
|
};
|
||||||
|
|
||||||
template
|
template
|
||||||
<typename TTypCurr>
|
<typename TDataNow>
|
||||||
class ZtCTypeNowCRTP<TTypCurr, ZCEmpty , false /*++*/ >
|
class ZtCTypeNowCRTP<TDataNow, ZCEmpty , false /*++*/ >
|
||||||
{
|
{
|
||||||
public: enum{ZEUseCRTP=0};
|
public: enum{ZEUseCRTP=0};
|
||||||
public: typedef TTypCurr TypeData;
|
public: typedef TDataNow TypeData;
|
||||||
public: typedef TTypCurr TypeBase;
|
public: typedef TDataNow TypeBase;
|
||||||
};
|
};
|
||||||
/////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////
|
||||||
|
|
||||||
@ -3261,12 +3261,12 @@ namespace ZNsMain
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
template< typename TTypCurr, typename TTypeNextChain
|
template< typename TDataNow, typename TTypeNextChain
|
||||||
>
|
>
|
||||||
class ZtCTypeChain ///////////////////////////////////
|
class ZtCTypeChain ///////////////////////////////////
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
typedef TTypCurr TypeData ;
|
typedef TDataNow TypeData ;
|
||||||
typedef ZtCTypeChain TypeChainNow ;
|
typedef ZtCTypeChain TypeChainNow ;
|
||||||
typedef TTypeNextChain TypeChainNext ;
|
typedef TTypeNextChain TypeChainNext ;
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
@ -3362,19 +3362,19 @@ namespace ZNsMain
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template< typename TTypCurr, typename TTypeNextChain
|
template< typename TDataNow, typename TTypeNextChain
|
||||||
>
|
>
|
||||||
class ZtCTypeChain /////////////////////////////////*/
|
class ZtCTypeChain /////////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
template<typename TTypCurr> class ZtCTypeChain<TTypCurr, ZCEmpty>
|
template<typename TDataNow> class ZtCTypeChain<TDataNow, ZCEmpty>
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
typedef ZtCTypeChain <TTypCurr, ZCEmpty> ZCTypeChain;
|
typedef ZtCTypeChain <TDataNow, ZCEmpty> ZCTypeChain;
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
public :
|
public :
|
||||||
typedef TTypCurr TypeData ;
|
typedef TDataNow 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 TTypCurr> class ZtCTypeChain<TTypCurr, ZCEmpty>*/
|
template<typename TDataNow> class ZtCTypeChain<TDataNow, ZCEmpty>*/
|
||||||
|
|
||||||
|
|
||||||
template<typename TTmplChain, typename TTypeView>
|
template<typename TTmplChain, typename TTypeView>
|
||||||
@ -3614,12 +3614,12 @@ namespace ZNsMain
|
|||||||
|
|
||||||
template /*########################################################*/
|
template /*########################################################*/
|
||||||
<
|
<
|
||||||
typename TTypCurr, typename TTypeNextChain
|
typename TDataNow, typename TTypeNextChain
|
||||||
>
|
>
|
||||||
class ZtCObjtChain : public TTypeNextChain //////////////////////////
|
class ZtCObjtChain : public TTypeNextChain //////////////////////////
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
typedef TTypCurr TypeData ;
|
typedef TDataNow TypeData ;
|
||||||
typedef ZtCObjtChain TypeChainNow ;
|
typedef ZtCObjtChain TypeChainNow ;
|
||||||
typedef TTypeNextChain TypeChainNext ;
|
typedef TTypeNextChain TypeChainNext ;
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
@ -3715,19 +3715,19 @@ namespace ZNsMain
|
|||||||
};/*
|
};/*
|
||||||
template ############################################################
|
template ############################################################
|
||||||
<
|
<
|
||||||
typename TTypCurr, typename TTypeNextChain
|
typename TDataNow, typename TTypeNextChain
|
||||||
>
|
>
|
||||||
class ZtCObjtChain : public TTypeNextChain ////////////////////////*/
|
class ZtCObjtChain : public TTypeNextChain ////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
template /*########################################################*/
|
template /*########################################################*/
|
||||||
< typename TTypCurr >
|
< typename TDataNow >
|
||||||
class ZtCObjtChain<TTypCurr, ZCEmpty> ///////////////////////////////
|
class ZtCObjtChain<TDataNow, ZCEmpty> ///////////////////////////////
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
typedef ZtCObjtChain<TTypCurr, ZCEmpty> ZCObjtChain;
|
typedef ZtCObjtChain<TDataNow, ZCEmpty> ZCObjtChain;
|
||||||
public :
|
public :
|
||||||
typedef TTypCurr TypeData ;
|
typedef TDataNow TypeData ;
|
||||||
typedef ZCObjtChain TypeChainNow ;
|
typedef ZCObjtChain TypeChainNow ;
|
||||||
typedef ZCObjtChain TypeChainNext ;
|
typedef ZCObjtChain TypeChainNext ;
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
@ -3791,8 +3791,8 @@ namespace ZNsMain
|
|||||||
public:
|
public:
|
||||||
};/*
|
};/*
|
||||||
template ############################################################
|
template ############################################################
|
||||||
< typename TTypCurr >
|
< typename TDataNow >
|
||||||
class ZtCObjtChain<TTypCurr, ZCEmpty> /////////////////////////////*/
|
class ZtCObjtChain<TDataNow, ZCEmpty> /////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -3800,7 +3800,7 @@ namespace ZNsMain
|
|||||||
|
|
||||||
■ class ZtCMiniValChain<>
|
■ class ZtCMiniValChain<>
|
||||||
|
|
||||||
자료형 TTypCurr 에 대하여, 기본값 TTypeVar 으로 자동 초기화하려는
|
자료형 TDataNow 에 대하여, 기본값 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 TTypCurr, TTypCurr TTypeVar, typename TTypeNextChain
|
typename TDataNow, TDataNow TTypeVar, typename TTypeNextChain
|
||||||
>
|
>
|
||||||
class ZtCMiniValChain ///////////////////////////////////////////////
|
class ZtCMiniValChain ///////////////////////////////////////////////
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
typedef TTypCurr TypeData ;
|
typedef TDataNow TypeData ;
|
||||||
typedef ZtCMiniValChain TypeChainNow ;
|
typedef ZtCMiniValChain TypeChainNow ;
|
||||||
typedef TTypeNextChain TypeChainNext ;
|
typedef TTypeNextChain TypeChainNext ;
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
@ -3936,21 +3936,21 @@ namespace ZNsMain
|
|||||||
};/*
|
};/*
|
||||||
template ############################################################
|
template ############################################################
|
||||||
<
|
<
|
||||||
typename TTypCurr, TTypCurr TTypeVar, typename TTypeNextChain
|
typename TDataNow, TDataNow TTypeVar, typename TTypeNextChain
|
||||||
>
|
>
|
||||||
class ZtCMiniValChain : public TTypeNextChain /////////////////////*/
|
class ZtCMiniValChain : public TTypeNextChain /////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
template /*########################################################*/
|
template /*########################################################*/
|
||||||
<
|
<
|
||||||
typename TTypCurr, TTypCurr TTypeVar
|
typename TDataNow, TDataNow TTypeVar
|
||||||
>
|
>
|
||||||
class ZtCMiniValChain<TTypCurr, TTypeVar, ZCEmpty> //////////////////
|
class ZtCMiniValChain<TDataNow, TTypeVar, ZCEmpty> //////////////////
|
||||||
{
|
{
|
||||||
public :
|
public :
|
||||||
typedef ZtCMiniValChain<TTypCurr, TTypeVar, ZCEmpty> ZCObjtChain;
|
typedef ZtCMiniValChain<TDataNow, TTypeVar, ZCEmpty> ZCObjtChain;
|
||||||
public :
|
public :
|
||||||
typedef TTypCurr TypeData ;
|
typedef TDataNow TypeData ;
|
||||||
typedef ZCObjtChain TypeChainNow ;
|
typedef ZCObjtChain TypeChainNow ;
|
||||||
typedef ZCObjtChain TypeChainNext ;
|
typedef ZCObjtChain TypeChainNext ;
|
||||||
/************************************************************/
|
/************************************************************/
|
||||||
@ -4018,9 +4018,9 @@ namespace ZNsMain
|
|||||||
};/*
|
};/*
|
||||||
template ############################################################
|
template ############################################################
|
||||||
<
|
<
|
||||||
typename TTypCurr, TTypCurr TTypeVar
|
typename TDataNow, TDataNow TTypeVar
|
||||||
>
|
>
|
||||||
class ZtCMiniValChain<TTypCurr, TTypeVar, ZCEmpty> ////////////////*/
|
class ZtCMiniValChain<TDataNow, TTypeVar, ZCEmpty> ////////////////*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user