commit 2025-10-18 10:56 delete class template in ZNsTmplChain : ZCppMain/ZMainHead.H
This commit is contained in:
@ -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*/
|
||||
|
||||
|
Reference in New Issue
Block a user