commit 2025-10-18 10:56 delete class template in ZNsTmplChain : ZCppMain/ZMainHead.H

This commit is contained in:
2025-10-18 10:56:46 +09:00
parent 0bae715de7
commit e1b7aeed21

View File

@ -4006,7 +4006,6 @@ namespace ZNsMain
namespace ZNsTmplChain
{
/*////////////////////////////////////////////////////////////
■ ZtCTmplChain<> 와 유사한 인터페이스를 이용하여, 마치 chain
@ -4023,207 +4022,6 @@ namespace ZNsMain
-- 2011-08-06 23:51:00
////////////////////////////////////////////////////////////*/
template< typename TTypeNow, typename TTypeNext
>
class ZtCTmplChain //////////////////////////////
{
public :
typedef TTypeNow ZCObjNow ;
typedef TTypeNext ZCObjNext;
public :
enum{ZENextObjNo =ZCObjNext::ENextObjNo+1};
enum{ZEBoolNextObj=1 };
private:
TTypeNow mo_ZCObjNow ;
TTypeNext mo_ZCObjNext;
public :
ZCObjNow & GetNowObj () {return mo_ZCObjNow ;}
ZCObjNext& GetNextObj() {return mo_ZCObjNext;}
/*#########################################################*/
const ZCObjNow & GetNowObj () const{return mo_ZCObjNow ;}
const ZCObjNext& GetNextObj() const{return mo_ZCObjNext;}
public:
};/*
template< typename TTypeNow, typename TTypeNext
>
class ZtCTmplChain ////////////////////////////*/
template<typename TTypeNow> class ZtCTmplChain<TTypeNow, ZCEmpty>
{
public :
typedef TTypeNow ZCObjNow ;
typedef TTypeNow ZCObjNext;
public :
enum{ZENextObjNo =1};
enum{ZEBoolNextObj=0};
private:
ZCObjNow mo_ZCObjNow;
public :
ZCObjNow& GetNowObj () {return mo_ZCObjNow;}
ZCObjNext& GetNextObj() {return mo_ZCObjNow;}
/*########################################################*/
const ZCObjNow& GetNowObj () const{return mo_ZCObjNow;}
const ZCObjNext& GetNextObj() const{return mo_ZCObjNow;}
public:
};/*
template<typename TTypeNow> class ZtCTmplChain<TTypeNow, ZCEmpty> */
/*//////////////////////////////////////////////////////////////////////////////
■ ZtCTmplTreeChain<> 와 유사한 인터페이스를 이용하여, 마치 chain 의 tree 처럼
호출하는 구조를 갖는 클래스를, ZtCTmplChain<> 와 같은 namespace 에 둔다.
-- 2011-10-04 00:46:00
일종의 2진 트리 형태인데, GetNextObj2() 멤버로 호출하는 노드를 따라서 먼저
처리를 끝내는지, 아니면 GetNextObj() 멤버로 호출하는 노드를 따라서 먼저 처리할
것인지는 경우에 따라 다르다. 일반적으로는 GetNextObj2() 멤버로 호출하는 노드를
따라서 먼저 처리를 하는 것으로 정한다.
-- 2011-10-04 21:01:00
사용례는 CMainChars.H 의
TTypeLength CSearchCursor_T<>::GetLengthByTmplTreeChain(~)
함수를 참고한다.
-- 2011-10-04 00:53:00
//////////////////////////////////////////////////////////////////////////////*/
template< typename TTypeNow ,
typename TTypeNext ,
typename TTypeNext2
>
class ZtCTmplTreeChain /////////
{
public :
enum{ZENextObjNo =TTypeNext ::ENextObjNo +1};
enum{ZENextObjNo2 =TTypeNext2::ENextObjNo2+1};
enum{ZEBoolNextObj =1};
enum{ZEBoolNextObj2=1};
enum{ZEObjChainCnt =TTypeNext::EObjChainCnt+TTypeNext2::EObjChainCnt+2};
public :
typedef TTypeNow ZCObjNow ;
typedef TTypeNext ZCObjNext ;
typedef TTypeNext2 ZCObjNext2;
private:
ZCObjNow mo_ZCObjNow ;
ZCObjNext mo_ZCObjNext ;
ZCObjNext2 mo_ZCObjNext2;
public :
ZCObjNow& GetNowObj () {return mo_ZCObjNow ;}
ZCObjNext& GetNextObj () {return mo_ZCObjNext ;}
ZCObjNext2& GetNextObj2() {return mo_ZCObjNext2;}
/*########################################################*/
const ZCObjNow& GetNowObj () const{return mo_ZCObjNow ;}
const ZCObjNext& GetNextObj () const{return mo_ZCObjNext ;}
const ZCObjNext2& GetNextObj2() const{return mo_ZCObjNext2;}
public :
};/*
template< typename TTypeNow ,
typename TTypeNext ,
typename TTypeNext2
>
class ZtCTmplTreeChain ///////*/
template< typename TTypeNow, typename TTypeNext
>
class ZtCTmplTreeChain<TTypeNow, TTypeNext, ZCEmpty>
{
public :
enum{ZENextObjNo =TTypeNext::ENextObjNo +1};
enum{ZENextObjNo2 =0 };
enum{ZEBoolNextObj =1 };
enum{ZEBoolNextObj2=0 };
enum{ZEObjChainCnt =TTypeNext::EObjChainCnt+1};
public :
typedef TTypeNow ZCObjNow ;
typedef TTypeNext ZCObjNext ;
typedef TTypeNext ZCObjNext2; // interface 호환을 위해서만 존재.
private:
ZCObjNow mo_ZCObjNow ;
ZCObjNext mo_ZCObjNext;
public :
ZCObjNow& GetNowObj () {return mo_ZCObjNow ;}
ZCObjNext& GetNextObj () {return mo_ZCObjNext;}
ZCObjNext2& GetNextObj2() {return mo_ZCObjNext;} // interface 호환을 위해서만 존재.
/*#######################################################*/
const ZCObjNow& GetNowObj () const{return mo_ZCObjNow ;}
const ZCObjNext& GetNextObj () const{return mo_ZCObjNext;}
const ZCObjNext2& GetNextObj2() const{return mo_ZCObjNext;} // interface 호환을 위해서만 존재.
public :
};/*
template< typename TTypeNow, typename TTypeNext
>
class ZtCTmplTreeChain<TTypeNow, TTypeNext, ZCEmpty> */
template< typename TTypeNow, typename TTypeNext2
>
class ZtCTmplTreeChain<TTypeNow, ZCEmpty, TTypeNext2>
{
public :
enum{ZENextObjNo =0 };
enum{ZENextObjNo2 =TTypeNext2::ENextObjNo2 +1 };
enum{ZEBoolNextObj =0 };
enum{ZEBoolNextObj2=1 };
enum{ZEObjChainCnt =TTypeNext2::EObjChainCnt+1 };
public :
typedef TTypeNow ZCObjNow ;
typedef TTypeNext2 ZCObjNext ; // interface 호환을 위해서만 존재.
typedef TTypeNext2 ZCObjNext2;
private:
ZCObjNow mo_ZCObjNow ;
ZCObjNext2 mo_ZCObjNext2;
public :
ZCObjNow& GetNowObj () {return mo_ZCObjNow ;}
ZCObjNext& GetNextObj () {return mo_ZCObjNext2;} // interface 호환을 위해서만 존재.
ZCObjNext2& GetNextObj2() {return mo_ZCObjNext2;}
/*########################################################*/
const ZCObjNow& GetNowObj () const{return mo_ZCObjNow ;}
const ZCObjNext& GetNextObj () const{return mo_ZCObjNext2;} // interface 호환을 위해서만 존재.
const ZCObjNext2& GetNextObj2() const{return mo_ZCObjNext2;}
public :
};/*
template< typename TTypeNow , typename TTypeNext2
>
class ZtCTmplTreeChain<TTypeNow, ZCEmpty, TTypeNext2> */
template< typename TTypeNow ////////////////////
>
class ZtCTmplTreeChain<TTypeNow, ZCEmpty, ZCEmpty>
{
public :
enum{ZENextObjNo =0};
enum{ZENextObjNo2 =0};
enum{ZEBoolNextObj =0};
enum{ZEBoolNextObj2=0};
enum{ZEObjChainCnt =1};
public :
typedef TTypeNow ZCObjNow ;
typedef ZCObjNow ZCObjNext ; // interface 호환을 위해서만 존재.
typedef ZCObjNow ZCObjNext2; // interface 호환을 위해서만 존재.
private:
ZCObjNow mo_ZCObjNow;
public :
ZCObjNow& GetNowObj () {return mo_ZCObjNow;}
ZCObjNext& GetNextObj () {return mo_ZCObjNow;} // interface 호환을 위해서만 존재.
ZCObjNext2& GetNextObj2() {return mo_ZCObjNow;} // interface 호환을 위해서만 존재.
/*######################################################*/
const ZCObjNow& GetNowObj () const{return mo_ZCObjNow;} // interface 호환을 위해서만 존재.
const ZCObjNext& GetNextObj () const{return mo_ZCObjNow;} // interface 호환을 위해서만 존재.
const ZCObjNext2& GetNextObj2() const{return mo_ZCObjNow;} // interface 호환을 위해서만 존재.
public :
};/*
template< typename TTypeNow ////////////////////
>
class ZtCTmplTreeChain<TTypeNow, ZCEmpty, ZCEmpty>
*/
}/*
namespace ZNsTmplChain*/