commit 2025-10-18 16:33 add ZtCMiniValChain : ZCppMain/ZMainHead.H
This commit is contained in:
@ -3813,6 +3813,11 @@ namespace ZNsMain
|
|||||||
|
|
||||||
-- 2025-10-18 02:10
|
-- 2025-10-18 02:10
|
||||||
|
|
||||||
|
실제로 ZtCMiniArrByChain 를 설계해, 주로 기본 자료형의 배열을 만
|
||||||
|
들수 있게 했다.
|
||||||
|
|
||||||
|
-- 2025-10-18 16:23
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////*/
|
///////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
template /*########################################################*/
|
template /*########################################################*/
|
||||||
@ -4004,6 +4009,117 @@ namespace ZNsMain
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
■ class ZtCMiniValChain<>
|
||||||
|
|
||||||
|
ZtCMiniValChain 을 이용해 주로 기본 자료형에 대해 배열을 만들고
|
||||||
|
초기화한다. 단, 당장은 크게 쓸모있어 보이지는 않는다.
|
||||||
|
|
||||||
|
-- 2025-10-18 16:25
|
||||||
|
|
||||||
|
■ class ZtCMiniValChain<> 사용 예.
|
||||||
|
|
||||||
|
typedef ZtCMiniValChain
|
||||||
|
<
|
||||||
|
char , 'a' , ZtCMiniValChain<
|
||||||
|
char , 'b' , ZtCMiniValChain<
|
||||||
|
char , 'c' , ZtCMiniValChain<
|
||||||
|
char , 'd' , ZtCMiniValChain<
|
||||||
|
char , 'e' , ZtCMiniValChain<
|
||||||
|
char , 'f' , ZtCMiniValChain<
|
||||||
|
char , 'g' , ZtCMiniValChain<
|
||||||
|
char , 'h' ,
|
||||||
|
ZCEmpty > > > > > > >
|
||||||
|
> ZCCharValChain ;
|
||||||
|
|
||||||
|
typedef ZtCMiniArrByChain
|
||||||
|
<char, ZCCharValChain> ZCMiniArrByChain;
|
||||||
|
|
||||||
|
ZCMiniArrByChain VO_CMiniArrByChain;
|
||||||
|
|
||||||
|
cout<<"# VO_CMiniArrByChain.size()="<<VO_CMiniArrByChain.size()<<endl;
|
||||||
|
cout<<"# VO_CMiniArrByChain.data()="<<VO_CMiniArrByChain.data()<<endl;
|
||||||
|
|
||||||
|
-- 2025-10-18 16:26
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
template /*########################################################*/
|
||||||
|
<
|
||||||
|
typename TTypData, typename TCMiniValChain
|
||||||
|
>
|
||||||
|
class ZtCMiniArrByChain /////////////////////////////////////////////
|
||||||
|
{
|
||||||
|
public :
|
||||||
|
typedef TTypData TypeData ;
|
||||||
|
typedef TCMiniValChain TypeChain ;
|
||||||
|
public :
|
||||||
|
typedef const TTypData TypeDataC ;
|
||||||
|
public :
|
||||||
|
enum{ZESize = TCMiniValChain::ZETypeNo};
|
||||||
|
public :
|
||||||
|
typedef TTypData TypeArrr[ZESize+1];
|
||||||
|
/*******************************************************************/
|
||||||
|
TypeArrr mo_TypeArr;
|
||||||
|
public :
|
||||||
|
static ZTypIntE Size (){return ZESize;}
|
||||||
|
static ZTypIntE size (){return ZESize;}
|
||||||
|
public :
|
||||||
|
TypeData * GetArray() {return mo_TypeArr;}
|
||||||
|
TypeDataC* GetArray() const{return mo_TypeArr;}
|
||||||
|
TypeData * data () {return mo_TypeArr;}
|
||||||
|
TypeDataC* data () const{return mo_TypeArr;}
|
||||||
|
private:
|
||||||
|
|
||||||
|
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||||
|
class ZCTypeView
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
ZTypIntE mi_CallNo;
|
||||||
|
public :
|
||||||
|
ZCTypeView(){mi_CallNo=0;}
|
||||||
|
public :
|
||||||
|
|
||||||
|
template
|
||||||
|
<typename TTypChain, typename THelpArray>
|
||||||
|
void OnMeetTypeVal(TypeData* mp_Array)
|
||||||
|
{
|
||||||
|
mp_Array[mi_CallNo++] = TTypChain::GetData() ;
|
||||||
|
}/*
|
||||||
|
template
|
||||||
|
<typename TTypChain, typename THelpArray>
|
||||||
|
void OnMeetTypeVal(TypeData* mp_Array) */
|
||||||
|
|
||||||
|
public :
|
||||||
|
};/*
|
||||||
|
class ZCTypeView*/
|
||||||
|
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||||
|
|
||||||
|
private:
|
||||||
|
/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/
|
||||||
|
public :
|
||||||
|
|
||||||
|
ZtCMiniArrByChain()
|
||||||
|
{
|
||||||
|
ZCTypeView VO_ZCTypeView; mo_TypeArr[ZESize]=0;
|
||||||
|
|
||||||
|
TypeChain::template ZtCIterChain<ZCTypeView&>::
|
||||||
|
IterHead( VO_ZCTypeView, mo_TypeArr );
|
||||||
|
/*********************************************/
|
||||||
|
}/*
|
||||||
|
ZtCMiniArrByChain()*/
|
||||||
|
|
||||||
|
public:
|
||||||
|
};/*
|
||||||
|
template /*##########################################################
|
||||||
|
<
|
||||||
|
typename TTypData, typename TCMiniValChain
|
||||||
|
>
|
||||||
|
class ZtCMiniArrByChain ///////////////////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace ZNsTmplChain
|
namespace ZNsTmplChain
|
||||||
{
|
{
|
||||||
/*////////////////////////////////////////////////////////////
|
/*////////////////////////////////////////////////////////////
|
||||||
|
Reference in New Issue
Block a user