Compare commits
130 Commits
bf32afc1cd
...
bmain
Author | SHA1 | Date | |
---|---|---|---|
/* User with id == 0 is a fake user from git author */
|
5cd24d6e94 | ||
/* User with id == 0 is a fake user from git author */
|
3f4e40147b | ||
/* User with id == 0 is a fake user from git author */
|
f45137e8f3 | ||
/* User with id == 0 is a fake user from git author */
|
882e4f6278 | ||
/* User with id == 0 is a fake user from git author */
|
c30a14c0c9 | ||
/* User with id == 0 is a fake user from git author */
|
cd4ab32709 | ||
/* User with id == 0 is a fake user from git author */
|
1ffbb95e80 | ||
/* User with id == 0 is a fake user from git author */
|
56960ed38f | ||
/* User with id == 0 is a fake user from git author */
|
5e34c2f5cc | ||
/* User with id == 0 is a fake user from git author */
|
f451a6a1e1 | ||
/* User with id == 0 is a fake user from git author */
|
7ff1933fb0 | ||
/* User with id == 0 is a fake user from git author */
|
d360408365 | ||
/* User with id == 0 is a fake user from git author */
|
2f8fae30a4 | ||
/* User with id == 0 is a fake user from git author */
|
6d4556236e | ||
/* User with id == 0 is a fake user from git author */
|
d4614dcb09 | ||
/* User with id == 0 is a fake user from git author */
|
ad8e294902 | ||
/* User with id == 0 is a fake user from git author */
|
3e97046031 | ||
/* User with id == 0 is a fake user from git author */
|
f8b9887734 | ||
/* User with id == 0 is a fake user from git author */
|
de6056ab27 | ||
/* User with id == 0 is a fake user from git author */
|
8266f0a6a3 | ||
/* User with id == 0 is a fake user from git author */
|
af8fec15eb | ||
/* User with id == 0 is a fake user from git author */
|
756b48ae36 | ||
/* User with id == 0 is a fake user from git author */
|
b5f71d95d2 | ||
/* User with id == 0 is a fake user from git author */
|
ea178aa11a | ||
/* User with id == 0 is a fake user from git author */
|
64630b4abd | ||
/* User with id == 0 is a fake user from git author */
|
8eeafdd0d8 | ||
/* User with id == 0 is a fake user from git author */
|
9277c95336 | ||
/* User with id == 0 is a fake user from git author */
|
ec687cc4e9 | ||
/* User with id == 0 is a fake user from git author */
|
d21d5b0263 | ||
/* User with id == 0 is a fake user from git author */
|
e1b7aeed21 | ||
/* User with id == 0 is a fake user from git author */
|
0bae715de7 | ||
/* User with id == 0 is a fake user from git author */
|
849cab2dbb | ||
/* User with id == 0 is a fake user from git author */
|
4113a0a6f1 | ||
/* User with id == 0 is a fake user from git author */
|
e57cce5a28 | ||
/* User with id == 0 is a fake user from git author */
|
342dc34096 | ||
/* User with id == 0 is a fake user from git author */
|
1d3ee05571 | ||
/* User with id == 0 is a fake user from git author */
|
29aa6225b4 | ||
/* User with id == 0 is a fake user from git author */
|
31a6d46726 | ||
/* User with id == 0 is a fake user from git author */
|
bea5561dc4 | ||
/* User with id == 0 is a fake user from git author */
|
b92b3e2107 | ||
/* User with id == 0 is a fake user from git author */
|
c52ddbed83 | ||
/* User with id == 0 is a fake user from git author */
|
58a38e75ab | ||
/* User with id == 0 is a fake user from git author */
|
e7692ddfd1 | ||
/* User with id == 0 is a fake user from git author */
|
0e4ae40622 | ||
/* User with id == 0 is a fake user from git author */
|
9c746559f4 | ||
/* User with id == 0 is a fake user from git author */
|
536fec9db0 | ||
/* User with id == 0 is a fake user from git author */
|
16bfabc6fe | ||
/* User with id == 0 is a fake user from git author */
|
5e550363ee | ||
/* User with id == 0 is a fake user from git author */
|
fcb513d4ac | ||
/* User with id == 0 is a fake user from git author */
|
b4871d1b07 | ||
/* User with id == 0 is a fake user from git author */
|
5d337e3356 | ||
/* User with id == 0 is a fake user from git author */
|
40debb62a6 | ||
/* User with id == 0 is a fake user from git author */
|
70b7d85fac | ||
/* User with id == 0 is a fake user from git author */
|
c96244dd29 | ||
/* User with id == 0 is a fake user from git author */
|
6fe3bbff18 | ||
/* User with id == 0 is a fake user from git author */
|
a0438aebc6 | ||
/* User with id == 0 is a fake user from git author */
|
eb35ccb059 | ||
/* User with id == 0 is a fake user from git author */
|
84299e59a5 | ||
/* User with id == 0 is a fake user from git author */
|
8cc267707f | ||
/* User with id == 0 is a fake user from git author */
|
4838bb74ef | ||
/* User with id == 0 is a fake user from git author */
|
023e1d8a0a | ||
/* User with id == 0 is a fake user from git author */
|
1e88508936 | ||
/* User with id == 0 is a fake user from git author */
|
bf3aa88ec1 | ||
/* User with id == 0 is a fake user from git author */
|
908303d235 | ||
/* User with id == 0 is a fake user from git author */
|
82a2c15364 | ||
/* User with id == 0 is a fake user from git author */
|
2ce107ed19 | ||
/* User with id == 0 is a fake user from git author */
|
1f05458724 | ||
/* User with id == 0 is a fake user from git author */
|
d85191b2d0 | ||
/* User with id == 0 is a fake user from git author */
|
11acb59e39 | ||
/* User with id == 0 is a fake user from git author */
|
3c12d055a2 | ||
/* User with id == 0 is a fake user from git author */
|
3e8cbd319e | ||
/* User with id == 0 is a fake user from git author */
|
721d26ca5e | ||
/* User with id == 0 is a fake user from git author */
|
2b4596b065 | ||
/* User with id == 0 is a fake user from git author */
|
0fb0270a53 | ||
/* User with id == 0 is a fake user from git author */
|
4147ea51d6 | ||
/* User with id == 0 is a fake user from git author */
|
a1b89271b7 | ||
/* User with id == 0 is a fake user from git author */
|
4c6cde5d59 | ||
/* User with id == 0 is a fake user from git author */
|
2f364e66a3 | ||
/* User with id == 0 is a fake user from git author */
|
600ac6ef1e | ||
/* User with id == 0 is a fake user from git author */
|
aa59e460c5 | ||
/* User with id == 0 is a fake user from git author */
|
4a0a74936b | ||
/* User with id == 0 is a fake user from git author */
|
d47a651fd4 | ||
/* User with id == 0 is a fake user from git author */
|
40157d7df2 | ||
/* User with id == 0 is a fake user from git author */
|
dabd772aec | ||
/* User with id == 0 is a fake user from git author */
|
92a8cb501d | ||
/* User with id == 0 is a fake user from git author */
|
e9944b6e0c | ||
/* User with id == 0 is a fake user from git author */
|
5762ec1cdf | ||
/* User with id == 0 is a fake user from git author */
|
5c9c870654 | ||
/* User with id == 0 is a fake user from git author */
|
6a873ea2c9 | ||
/* User with id == 0 is a fake user from git author */
|
ef441cca37 | ||
/* User with id == 0 is a fake user from git author */
|
03556b203c | ||
/* User with id == 0 is a fake user from git author */
|
2aab937785 | ||
/* User with id == 0 is a fake user from git author */
|
3e37580b98 | ||
/* User with id == 0 is a fake user from git author */
|
b8d5ddb47f | ||
/* User with id == 0 is a fake user from git author */
|
a0d9d31a21 | ||
/* User with id == 0 is a fake user from git author */
|
1774cfda3a | ||
/* User with id == 0 is a fake user from git author */
|
b325c152fd | ||
/* User with id == 0 is a fake user from git author */
|
696b5744b1 | ||
/* User with id == 0 is a fake user from git author */
|
7cca0d4d92 | ||
/* User with id == 0 is a fake user from git author */
|
391adbaf11 | ||
/* User with id == 0 is a fake user from git author */
|
69fb7a8c5c | ||
/* User with id == 0 is a fake user from git author */
|
d66bdb4cea | ||
/* User with id == 0 is a fake user from git author */
|
a578e3b244 | ||
/* User with id == 0 is a fake user from git author */
|
2e0356fe09 | ||
/* User with id == 0 is a fake user from git author */
|
342446fdce | ||
/* User with id == 0 is a fake user from git author */
|
15d8ee63ad | ||
/* User with id == 0 is a fake user from git author */
|
d73d9e4227 | ||
/* User with id == 0 is a fake user from git author */
|
3b987e2a6e | ||
/* User with id == 0 is a fake user from git author */
|
131e638f8b | ||
/* User with id == 0 is a fake user from git author */
|
659b0a19cb | ||
/* User with id == 0 is a fake user from git author */
|
c8523687fc | ||
/* User with id == 0 is a fake user from git author */
|
65a115ff6f | ||
/* User with id == 0 is a fake user from git author */
|
4fc794e834 | ||
/* User with id == 0 is a fake user from git author */
|
15f24be62d | ||
/* User with id == 0 is a fake user from git author */
|
5166bbe7cf | ||
/* User with id == 0 is a fake user from git author */
|
7ba366e151 | ||
/* User with id == 0 is a fake user from git author */
|
5b692812db | ||
/* User with id == 0 is a fake user from git author */
|
b1958e065a | ||
/* User with id == 0 is a fake user from git author */
|
6cc8cff669 | ||
/* User with id == 0 is a fake user from git author */
|
0e25b260de | ||
/* User with id == 0 is a fake user from git author */
|
7a3b57f135 | ||
/* User with id == 0 is a fake user from git author */
|
388b87377a | ||
/* User with id == 0 is a fake user from git author */
|
093eb009d0 | ||
/* User with id == 0 is a fake user from git author */
|
18e0b5d9d4 | ||
/* User with id == 0 is a fake user from git author */
|
1bdcf7597b | ||
/* User with id == 0 is a fake user from git author */
|
bfe282e141 | ||
/* User with id == 0 is a fake user from git author */
|
bdc450d1b3 | ||
/* User with id == 0 is a fake user from git author */
|
bb547bd4f7 | ||
/* User with id == 0 is a fake user from git author */
|
e34ad6cfb1 | ||
/* User with id == 0 is a fake user from git author */
|
df8ffa6024 |
2755
ZCppMain/ZMainHead.H
2755
ZCppMain/ZMainHead.H
File diff suppressed because it is too large
Load Diff
@ -7136,7 +7136,6 @@ namespace ZNsMain
|
||||
{
|
||||
return VI_EmptyBuffCnt;
|
||||
}
|
||||
////////////////
|
||||
}
|
||||
else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len)
|
||||
{
|
||||
@ -7169,9 +7168,7 @@ namespace ZNsMain
|
||||
{
|
||||
if(mi_HeadPos<1) return ;
|
||||
|
||||
int VI_Index=0 ;
|
||||
int i =mi_HeadPos;
|
||||
|
||||
int VI_Index= 0, i = mi_HeadPos;
|
||||
int VI_ValidBuffCnt = GetSize() ;
|
||||
|
||||
for(; i<=mi_TailPos; ++i)
|
||||
@ -7189,8 +7186,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
for(i=0; i<mi_HeadPos; ++i)*/
|
||||
|
||||
mi_HeadPos=0 ;
|
||||
mi_TailPos=VI_ValidBuffCnt-1;
|
||||
mi_HeadPos= 0 ; mi_TailPos= VI_ValidBuffCnt-1;
|
||||
}/*
|
||||
void MoveFirst()*/
|
||||
|
||||
|
@ -22,85 +22,133 @@ namespace ZNsMain
|
||||
typedef TTypArg TypeArg ;
|
||||
typedef TSize TypeSize ;
|
||||
public:
|
||||
class ZCDataPoint; class ZCDataPointC;
|
||||
class ZCNodePoint; class ZCNodePointN ;
|
||||
public:
|
||||
typedef Type* IterEasy;
|
||||
typedef ZCDataPoint TypeIter;
|
||||
/**********************************************/
|
||||
typedef TypeData* IterEasy ;
|
||||
typedef TypeData* TypeNode ; // ZCLinkPoint::GetNode() 의 반환형.
|
||||
typedef ZCNodePoint TypeIter ;
|
||||
typedef ZtCArray TypeThis ;
|
||||
|
||||
typedef const TypeThis TypeThisC ;
|
||||
typedef const TypeData TypeDataC ;
|
||||
typedef const IterEasy IterEasyC ;
|
||||
typedef const TypeData* TypeNodeC ; // ZCLinkPoint::GetNode() const 의 반환형.
|
||||
typedef const TypeIter TypeIterC ;
|
||||
typedef const TypeData* IterEasyC ;
|
||||
|
||||
/**********************************************/
|
||||
typedef ZCDataPointC iteratorC ;
|
||||
typedef const ZCNodePoint ZCNodePointC;
|
||||
typedef const ZCNodePoint iteratorC ;
|
||||
/**********************************************/
|
||||
typedef ZCDataPoint iterator ;
|
||||
typedef ZCDataPointC const_iterator;
|
||||
typedef ZCNodePoint iterator ;
|
||||
typedef ZCNodePointN const_iterator;
|
||||
typedef ZCNodePointN iteratorN ;
|
||||
typedef ZCNodePointN TypeIterN ;
|
||||
public:
|
||||
|
||||
|
||||
class ZCDataPoint
|
||||
class ZCNodePoint
|
||||
{
|
||||
private: mutable
|
||||
private:
|
||||
ZtCArray& mr_CArray; mutable
|
||||
TypeData* mp_Data ; mutable
|
||||
TypeSize ml_ElePos; // *mp_Data 가 배열에서 차지하는 위치
|
||||
ZtCArray& mr_CArray;
|
||||
public:
|
||||
|
||||
ZCDataPoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
||||
static ZCNodePoint MakeTailPoint(ZtCArray & AR_CArray)
|
||||
{
|
||||
ZCNodePoint VO_ZCLinkPoint(AR_CArray);
|
||||
|
||||
if(AR_CArray.size()>0) /****************************/
|
||||
{
|
||||
VO_ZCLinkPoint.mp_Data = AR_CArray.mp_TypeArr+AR_CArray.size()-1 ;
|
||||
VO_ZCLinkPoint.ml_ElePos = AR_CArray.size() ;
|
||||
}
|
||||
return VO_ZCLinkPoint; /****************************/
|
||||
}/*
|
||||
static ZCNodePoint MakeTailPoint(ZtCArray & AR_CArray)*/
|
||||
static ZCNodePoint MakeTailPoint(TypeIterC& AR_TypeIter)
|
||||
{
|
||||
ZCNodePoint VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
|
||||
|
||||
if(VL_ArrSize>0) /**********************************/
|
||||
{
|
||||
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
|
||||
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
|
||||
}
|
||||
return VO_ZCLinkPoint; /****************************/
|
||||
}/*
|
||||
static ZCNodePoint MakeTailPoint(TypeIterC& AR_TypeIter)*/
|
||||
|
||||
public:
|
||||
|
||||
ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
||||
mr_CArray(AR_CArray)
|
||||
/*****************************************************************/
|
||||
{
|
||||
mp_Data =&AR_CData ;
|
||||
mr_CArray=&AR_CArray;
|
||||
ml_ElePos=AL_ElePos ;
|
||||
}/*
|
||||
ZCDataPoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
|
||||
ZCNodePoint(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
|
||||
|
||||
ZCDataPoint(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
|
||||
ZCNodePoint(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
|
||||
{
|
||||
mp_Data = AR_CArray.mp_TypeArr ;
|
||||
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
|
||||
}/*
|
||||
ZCDataPoint(ZtCArray& AR_CArray)*/
|
||||
ZCNodePoint(ZtCArray& AR_CArray)*/
|
||||
|
||||
ZCDataPoint(const ZCDataPoint& rhs) : mr_CArray(rhs.mr_CArray)
|
||||
ZCNodePoint(const ZCNodePoint& rhs) : mr_CArray(rhs.mr_CArray)
|
||||
{
|
||||
mp_Data = rhs.mp_TypeArr ;
|
||||
mp_Data = rhs.mp_Data ;
|
||||
ml_ElePos= (mr_CArray.size()>0 ? 1 : 0 );
|
||||
}/*
|
||||
ZCDataPoint(const ZCDataPoint& rhs)*/
|
||||
ZCNodePoint(const ZCNodePoint& rhs)*/
|
||||
|
||||
|
||||
TypeThis & GetMain() {return mr_CArray ;}
|
||||
TypeNode GetNode() {return mp_Data ;}
|
||||
|
||||
TypeThisC& GetMain() const{return mr_CArray ;}
|
||||
TypeNodeC GetNode() const{return mp_Data ;}
|
||||
|
||||
TypeSize size () const{return mr_CArray.size();}
|
||||
TypeSize GetPos () const{return ml_ElePos ;}
|
||||
TypeSize size () const{return mr_CArray.size();}
|
||||
|
||||
TypeData & operator* () {return *mp_Data;}
|
||||
TypeData * operator->() {return mp_Data;}
|
||||
TypeDataC& operator* () const{return *mp_Data;}
|
||||
TypeDataC* operator->() const{return mp_Data;}
|
||||
|
||||
ZCDataPoint& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCDataPoint operator++(int){++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIter & operator++( ) {++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIter operator++(int) {++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIter & operator--( ) {--mp_Data; --ml_ElePos; return *this;}
|
||||
TypeIter operator--(int) {--mp_Data; --ml_ElePos; return *this;}
|
||||
|
||||
const ZCDataPoint& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
const ZCDataPoint operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCNodePointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCNodePointC operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCNodePointC& operator--( ) const{--mp_Data; --ml_ElePos; return *this;}
|
||||
ZCNodePointC operator--(int) const{--mp_Data; --ml_ElePos; return *this;}
|
||||
|
||||
ZCDataPoint operator+(TSize AL_AddPos) const
|
||||
TypeIter operator+(TSize AL_AddPos) const
|
||||
{
|
||||
return ZCDataPoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
||||
return ZCNodePoint(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
||||
}/*
|
||||
ZCDataPoint operator+(TSize AL_AddPos) const*/
|
||||
TypeIter operator+(TSize AL_AddPos) const*/
|
||||
|
||||
|
||||
bool operator == (const ZCDataPoint& rhs) const
|
||||
bool operator == (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos == rhs.ml_ElePos; }
|
||||
bool operator != (const ZCDataPoint& rhs) const
|
||||
bool operator != (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos != rhs.ml_ElePos; }
|
||||
bool operator > (const ZCDataPoint& rhs) const
|
||||
bool operator > (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos > rhs.ml_ElePos; }
|
||||
bool operator >= (const ZCDataPoint& rhs) const
|
||||
bool operator >= (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos >= rhs.ml_ElePos; }
|
||||
bool operator < (const ZCDataPoint& rhs) const
|
||||
bool operator < (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos < rhs.ml_ElePos; }
|
||||
bool operator <= (const ZCDataPoint& rhs) const
|
||||
bool operator <= (ZCNodePointC& rhs) const
|
||||
{ return ml_ElePos <= rhs.ml_ElePos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
@ -118,10 +166,10 @@ namespace ZNsMain
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZCDataPoint*/
|
||||
class ZCNodePoint*/
|
||||
|
||||
|
||||
class ZCDataPointC
|
||||
class ZCNodePointN
|
||||
{
|
||||
private:
|
||||
mutable TypeData* mp_Data ;
|
||||
@ -129,35 +177,77 @@ namespace ZNsMain
|
||||
const ZtCArray& mr_CArray;
|
||||
public:
|
||||
|
||||
ZCDataPointC(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
||||
static ZCNodePointN MakeTailPoint(ZtCArray & AR_CArray)
|
||||
{
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_CArray);
|
||||
|
||||
if(AR_CArray.size()>0) /****************************/
|
||||
{
|
||||
VO_ZCLinkPoint.mp_Data = AR_CArray.mp_TypeArr+AR_CArray.size()-1 ;
|
||||
VO_ZCLinkPoint.ml_ElePos = AR_CArray.size() ;
|
||||
}
|
||||
return VO_ZCLinkPoint; /****************************/
|
||||
}/*
|
||||
static ZCNodePointN MakeTailPoint(ZtCArray & AR_CArray)*/
|
||||
static ZCNodePointN MakeTailPoint(TypeIterC& AR_TypeIter)
|
||||
{
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
|
||||
|
||||
if(VL_ArrSize>0) /**********************************/
|
||||
{
|
||||
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
|
||||
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
|
||||
}
|
||||
return VO_ZCLinkPoint; /****************************/
|
||||
}/*
|
||||
static ZCNodePointN MakeTailPoint(TypeIterC& AR_TypeIter)*/
|
||||
static ZCNodePointN MakeTailPoint(TypeIterN& AR_TypeIter)
|
||||
{
|
||||
ZCNodePointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
const TypeSize VL_ArrSize = AR_TypeIter.mr_CArray.size();
|
||||
|
||||
if(VL_ArrSize>0) /**********************************/
|
||||
{
|
||||
VO_ZCLinkPoint.mp_Data = AR_TypeIter.mr_CArray+VL_ArrSize-1 ;
|
||||
VO_ZCLinkPoint.ml_ElePos = VL_ArrSize ;
|
||||
}
|
||||
return VO_ZCLinkPoint; /****************************/
|
||||
}/*
|
||||
static ZCNodePointN MakeTailPoint(TypeIterN& AR_TypeIter)*/
|
||||
|
||||
public:
|
||||
|
||||
ZCNodePointN(const ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos) :
|
||||
mr_CArray(AR_CArray)
|
||||
/*****************************************************************/
|
||||
{
|
||||
mp_Data =&AR_CData ;
|
||||
mr_CArray=&AR_CArray;
|
||||
ml_ElePos=AL_ElePos ;
|
||||
}/*
|
||||
ZCDataPointC(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
|
||||
ZCNodePointN(ZtCArray& AR_CArray, Type& AR_CData, TSize AL_ElePos)*/
|
||||
|
||||
ZCDataPointC(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
|
||||
ZCNodePointN(ZtCArray& AR_CArray) : mr_CArray(AR_CArray)
|
||||
{
|
||||
mp_Data = AR_CArray.mp_TypeArr ;
|
||||
mp_Data = AR_CArray.mp_Data ;
|
||||
ml_ElePos=(AR_CArray.size()>0 ? 1 : 0 ) ;
|
||||
}/*
|
||||
ZCDataPointC(ZtCArray& AR_CArray)*/
|
||||
ZCNodePointN(ZtCArray& AR_CArray)*/
|
||||
|
||||
ZCDataPointC(const ZCDataPointC& rhs) : mr_CArray(rhs.mr_CArray)
|
||||
ZCNodePointN(const ZCNodePointN& rhs) : mr_CArray(rhs.mr_CArray)
|
||||
{
|
||||
mp_Data = rhs.mp_TypeArr ;
|
||||
mp_Data = rhs.mp_Data ;
|
||||
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
|
||||
}/*
|
||||
ZCDataPointC(const ZCDataPointC& rhs)*/
|
||||
ZCDataPointC(const ZCDataPoint & rhs) : mr_CArray(rhs.mr_CArray)
|
||||
ZCNodePointN(const ZCNodePointN& rhs)*/
|
||||
ZCNodePointN(const ZCNodePoint & rhs) : mr_CArray(rhs.mr_CArray)
|
||||
{
|
||||
mp_Data = rhs.mp_TypeArr ;
|
||||
mp_Data = rhs.mp_Data ;
|
||||
ml_ElePos=(mr_CArray.size()>0 ? 1 : 0 ) ;
|
||||
}/*
|
||||
ZCDataPointC(const ZCDataPoint & rhs)*/
|
||||
ZCNodePointN(const ZCNodePoint & rhs)*/
|
||||
|
||||
|
||||
TypeSize size () const{return mr_CArray.size();}
|
||||
@ -167,30 +257,27 @@ namespace ZNsMain
|
||||
TypeDataC* operator->() const{return mp_Data;}
|
||||
|
||||
|
||||
ZCDataPointC& operator++( ){++mp_Data; ++ml_ElePos; return *this;}
|
||||
ZCDataPointC operator++(int){++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIterN& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
TypeIterN operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
|
||||
const ZCDataPointC& operator++( ) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
const ZCDataPointC operator++(int) const{++mp_Data; ++ml_ElePos; return *this;}
|
||||
|
||||
ZCDataPointC operator+(TSize AL_AddPos) const
|
||||
TypeIterN operator+(TSize AL_AddPos) const
|
||||
{
|
||||
return ZCDataPointC(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
||||
return ZCNodePointN(*this, mp_Data+AL_AddPos, ml_ElePos+AL_AddPos);
|
||||
}/*
|
||||
ZCDataPointC operator+(TSize AL_AddPos) const*/
|
||||
TypeIterN operator+(TSize AL_AddPos) const*/
|
||||
|
||||
|
||||
bool operator == (const ZCDataPointC& rhs) const
|
||||
bool operator == (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos == rhs.ml_ElePos; }
|
||||
bool operator != (const ZCDataPointC& rhs) const
|
||||
bool operator != (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos != rhs.ml_ElePos; }
|
||||
bool operator > (const ZCDataPointC& rhs) const
|
||||
bool operator > (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos > rhs.ml_ElePos; }
|
||||
bool operator >= (const ZCDataPointC& rhs) const
|
||||
bool operator >= (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos >= rhs.ml_ElePos; }
|
||||
bool operator < (const ZCDataPointC& rhs) const
|
||||
bool operator < (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos < rhs.ml_ElePos; }
|
||||
bool operator <= (const ZCDataPointC& rhs) const
|
||||
bool operator <= (const ZCNodePointN& rhs) const
|
||||
{ return ml_ElePos <= rhs.ml_ElePos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
@ -208,7 +295,7 @@ namespace ZNsMain
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZCDataPointC*/
|
||||
class ZCNodePointN*/
|
||||
|
||||
|
||||
public :
|
||||
@ -455,11 +542,17 @@ namespace ZNsMain
|
||||
void push_front(TypeArg AR_TypeArg){AddHead(AR_TypeArg);}
|
||||
void push_back (TypeArg AR_TypeArg){AddTail(AR_TypeArg);}
|
||||
|
||||
Type& push_front(){return AddHead();}
|
||||
Type& push_back (){return AddTail();}
|
||||
TypeData& push_front(){return AddHead();}
|
||||
TypeData& push_back (){return AddTail();}
|
||||
|
||||
/***/ ZCDataPoint begin() {return ZCDataPoint(*this);}
|
||||
const ZCDataPoint begin() const{return ZCDataPoint(*this);}
|
||||
TypeIter begin () {return ZCNodePoint (*this);}
|
||||
TypeIterN begin () const{return ZCNodePointN(*this);}
|
||||
|
||||
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
|
||||
iteratorN end () const{ return ZCNodePointN::MakeTailPoint(*this); }
|
||||
|
||||
iteratorN cbegin() const{ return ZCNodePointN(*this); }
|
||||
iteratorN cend () const{ return ZCNodePointN::MakeTailPoint(*this); }
|
||||
|
||||
|
||||
template<typename TFunctor> void IterElement(TFunctor AO_Functor)
|
||||
@ -654,103 +747,97 @@ namespace ZNsMain
|
||||
|
||||
-- 2011-06-12 20:42:00
|
||||
|
||||
GetDataInIter() 를 ItD() 로 대체. -- 2025-10-15 15:49
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
Type* GetHeadIterEasy (){return mp_TypeArr ;}
|
||||
Type* GetTailIterEasy (){return mp_TypeArr+ml_UseSize-1 ;}
|
||||
TypeData * GetHeadIterEasy () {return mp_TypeArr ;}
|
||||
TypeData * GetTailIterEasy () {return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyID GetHeadIterEasyID () {return (IterEasyID ) mp_TypeArr ;}
|
||||
IterEasyID GetTailIterEasyID () {return (IterEasyID )(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
const Type* GetHeadIterEasy () const{return mp_TypeArr ;}
|
||||
const Type* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID) mp_TypeArr ;}
|
||||
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
TypeDataC* GetHeadIterEasy () const{return mp_TypeArr ;}
|
||||
TypeDataC* GetTailIterEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyIDc GetHeadIterEasyID () const{return (IterEasyIDc) mp_TypeArr ;}
|
||||
IterEasyIDc GetTailIterEasyID () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
void MoveNextIter(Type*& APR_CType ) const{++APR_CType ;}
|
||||
IterEasyIDc GetHeadIterEasyIDc() const{return (IterEasyIDc) mp_TypeArr ;}
|
||||
IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
void MoveNextIter(TypeData* & APR_CType ) const{++APR_CType ;}
|
||||
void MoveNextIter(iterator & ARR_CIterator) const{++ARR_CIterator;}
|
||||
void MoveNextIter(IterEasyID & AI_IterEasyID) const
|
||||
{ MoveNextIter((Type*&)AI_IterEasyID); }
|
||||
void MoveNextIter(const Type*& APR_CType ) const{++APR_CType ;}
|
||||
void MoveNextIter(const iterator& ARR_CIterator) const{++ARR_CIterator;}
|
||||
void MoveNextIter(const IterEasyID& AI_IterEasyID)
|
||||
const{ MoveNextIter((const Type*&)AI_IterEasyID); }
|
||||
{ MoveNextIter((TypeData *&)AI_IterEasyID); }
|
||||
void MoveNextIter(TypeDataC* & APR_CType ) const{++APR_CType ;}
|
||||
void MoveNextIter(iteratorC & ARR_CIterator) const{++ARR_CIterator;}
|
||||
void MoveNextIter(IterEasyIDc& AI_IterEasyID) const
|
||||
{ MoveNextIter((TypeDataC*&)AI_IterEasyID); }
|
||||
|
||||
void MovePrevIter(Type*& APR_CType ) const{--APR_CType ;}
|
||||
void MovePrevIter(TypeData* & APR_CType ) const{--APR_CType ;}
|
||||
void MovePrevIter(iterator & ARR_CIterator) const{--ARR_CIterator;}
|
||||
void MovePrevIter(IterEasyID & AI_IterEasyID) const
|
||||
{ MovePrevIter((Type*&)AI_IterEasyID); }
|
||||
void MovePrevIter(const Type*& APR_CType ) const{--APR_CType ;}
|
||||
void MovePrevIter(const iterator& ARR_CIterator) const{--ARR_CIterator;}
|
||||
void MovePrevIter(const IterEasyID& AI_IterEasyID)
|
||||
const{ MovePrevIter((const Type*&)AI_IterEasyID); }
|
||||
{ MovePrevIter((TypeData *&)AI_IterEasyID); }
|
||||
void MovePrevIter(TypeDataC* & APR_CType ) const{--APR_CType ;}
|
||||
void MovePrevIter(iteratorC & ARR_CIterator) const{--ARR_CIterator;}
|
||||
void MovePrevIter(IterEasyIDc& AI_IterEasyID) const
|
||||
{ MovePrevIter((TypeDataC*&)AI_IterEasyID); }
|
||||
|
||||
|
||||
Type& GetDataInIter(Type* AP_CType ){return *AP_CType ;}
|
||||
Type& GetDataInIter(iterator& ARR_CIterator){return *ARR_CIterator ;}
|
||||
Type& GetDataInIter(IterEasyID AI_IterEasyID){return *(Type*)AI_IterEasyID;}
|
||||
|
||||
const Type& GetDataInIter(const Type* AP_CType ) const{return *AP_CType;}
|
||||
const Type& GetDataInIter(const iterator& ARR_CIterator) const{return *ARR_CIterator;}
|
||||
const Type& GetDataInIter(const IterEasyID AI_IterEasyID) const
|
||||
{ return *(const Type*)AI_IterEasyID; }
|
||||
|
||||
|
||||
Type& GetDataInIter(Type* AP_Type , TypeSize AI_FarNum)
|
||||
{ return *(AP_Type + AI_FarNum) ; }
|
||||
Type& GetDataInIter(iterator& ARR_CIterator , TypeSize AI_FarNum)
|
||||
{ return *(ARR_CIterator+AI_FarNum) ; }
|
||||
Type& GetDataInIter(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum)
|
||||
{ return GetDataInIter((Type*)ARRI_IterEasyID, AI_FarNum); }
|
||||
|
||||
const Type& GetDataInIter(const Type* AP_Type , TypeSize AI_FarNum) const
|
||||
{ return *(AP_Type + AI_FarNum); }
|
||||
const Type& GetDataInIter(iterator& ARR_CIterator, TypeSize AI_FarNum) const
|
||||
{ return *(ARR_CIterator+AI_FarNum); }
|
||||
const Type& GetDataInIter(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const
|
||||
{ return GetDataInIter((const Type*)ARRI_IterEasyID, AI_FarNum); }
|
||||
|
||||
|
||||
Type* ItHEasy(){return mp_TypeArr ;}
|
||||
Type* ItTEasy(){return mp_TypeArr+ml_UseSize-1 ;}
|
||||
TypeData * ItHEasy() {return mp_TypeArr ;}
|
||||
TypeData * ItTEasy() {return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyID ItHID () {return (IterEasyID ) mp_TypeArr ;}
|
||||
IterEasyID ItTID () {return (IterEasyID )(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
const Type* ItHEasy () const{return mp_TypeArr ;}
|
||||
const Type* ItTEasy () const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||
const IterEasyID ItHID() const{return (IterEasyID) mp_TypeArr ;}
|
||||
const IterEasyID ItTID() const{return (IterEasyID)(mp_TypeArr+ml_UseSize-1);}
|
||||
TypeDataC* ItHEasy() const{return mp_TypeArr ;}
|
||||
TypeDataC* ItTEasy() const{return mp_TypeArr+ml_UseSize-1 ;}
|
||||
IterEasyIDc ItHID () const{return (IterEasyIDc) mp_TypeArr ;}
|
||||
IterEasyIDc ItTID () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
void ItNext(Type*& APR_CType ) const{++APR_CType ;}
|
||||
IterEasyIDc ItHIDc () const{return (IterEasyIDc) mp_TypeArr ;}
|
||||
IterEasyIDc ItTIDc () const{return (IterEasyIDc)(mp_TypeArr+ml_UseSize-1);}
|
||||
|
||||
void ItNext(TypeData* & APR_CType ) const{++APR_CType ;}
|
||||
void ItNext(iterator & ARR_CIterator) const{++ARR_CIterator;}
|
||||
void ItNext(IterEasyID & AI_IterEasyID) const
|
||||
{ ItNext((Type*&)AI_IterEasyID); }
|
||||
void ItNext(const Type*& APR_CType ) const{++APR_CType ;}
|
||||
void ItNext(const iterator& ARR_CIterator) const{++ARR_CIterator;}
|
||||
void ItNext(const IterEasyID& AI_IterEasyID)
|
||||
const{ ItNext((const Type*&)AI_IterEasyID); }
|
||||
{ ItNext((TypeData *&)AI_IterEasyID); }
|
||||
void ItNext(TypeDataC* & APR_CType ) const{++APR_CType ;}
|
||||
void ItNext(iteratorC & ARR_CIterator) const{++ARR_CIterator;}
|
||||
void ItNext(IterEasyIDc & AI_IterEasyID) const
|
||||
{ ItNext((TypeDataC*&)AI_IterEasyID); }
|
||||
|
||||
void ItPrev(Type*& APR_CType ) const{--APR_CType ;}
|
||||
void ItPrev(TypeData* & APR_CType ) const{--APR_CType ;}
|
||||
void ItPrev(iterator & ARR_CIterator) const{--ARR_CIterator;}
|
||||
void ItPrev(IterEasyID & AI_IterEasyID) const
|
||||
{ ItPrev((Type*&)AI_IterEasyID); }
|
||||
void ItPrev(const Type*& APR_CType ) const{--APR_CType ;}
|
||||
void ItPrev(const iterator& ARR_CIterator) const{--ARR_CIterator;}
|
||||
void ItPrev(const IterEasyID& AI_IterEasyID)
|
||||
const{ ItPrev((const Type*&)AI_IterEasyID); }
|
||||
{ ItPrev((TypeData *&)AI_IterEasyID); }
|
||||
void ItPrev(TypeDataC* & APR_CType ) const{--APR_CType ;}
|
||||
void ItPrev(iteratorC & ARR_CIterator) const{--ARR_CIterator;}
|
||||
void ItPrev(IterEasyIDc & AI_IterEasyID) const
|
||||
{ ItPrev((TypeDataC*&)AI_IterEasyID); }
|
||||
|
||||
Type& ItD(Type* AP_Type ){return GetDataInIter(AP_Type );}
|
||||
Type& ItD(iterator& ARR_CIterator ){return GetDataInIter(ARR_CIterator );}
|
||||
Type& ItD(IterEasyID ARRI_IterEasyID ){return GetDataInIter(ARRI_IterEasyID );}
|
||||
Type& ItD(Type* AP_Type , TypeSize AI_FarNum){return GetDataInIter(AP_Type , AI_FarNum );}
|
||||
Type& ItD(iterator& ARR_CIterator , TypeSize AI_FarNum){return GetDataInIter(ARR_CIterator , AI_FarNum);}
|
||||
Type& ItD(IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum){return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
TypeData& ItD(TypeData * AP_CType ) {return *AP_CType ;}
|
||||
TypeData& ItD(iterator & ARR_CIterator) {return *ARR_CIterator;}
|
||||
TypeData& ItD(IterEasyID AI_IterEasyID)
|
||||
{ return *(TypeData *)AI_IterEasyID; }
|
||||
|
||||
const Type& ItD(const Type* AP_Type ) const{return GetDataInIter(AP_Type );}
|
||||
const Type& ItD(const iterator& ARR_CIterator ) const{return GetDataInIter(ARR_CIterator );}
|
||||
const Type& ItD(const IterEasyID ARRI_IterEasyID ) const{return GetDataInIter(ARRI_IterEasyID );}
|
||||
const Type& ItD(const Type* AP_Type , TypeSize AI_FarNum) const{return GetDataInIter(AP_Type );}
|
||||
const Type& ItD(const iterator& ARR_CIterator , TypeSize AI_FarNum) const{return GetDataInIter(ARR_CIterator , AI_FarNum);}
|
||||
const Type& ItD(const IterEasyID ARRI_IterEasyID, TypeSize AI_FarNum) const{return GetDataInIter(ARRI_IterEasyID, AI_FarNum);}
|
||||
TypeDataC& ItD(TypeDataC * AP_CType ) const{return *AP_CType;}
|
||||
TypeDataC& ItD(iteratorC & ARR_CIterator) const{return *ARR_CIterator;}
|
||||
TypeDataC& ItD(IterEasyIDc AI_IterEasyID) const
|
||||
{ return *(TypeDataC*)AI_IterEasyID; }
|
||||
|
||||
|
||||
TypeData & ItD(TypeData * AP_Type , TypeSize AI_FarNum)
|
||||
{ return *(AP_Type + AI_FarNum) ; }
|
||||
TypeData & ItD(iterator & ARR_CIterator , TypeSize AI_FarNum)
|
||||
{ return *(ARR_CIterator+AI_FarNum) ; }
|
||||
TypeData & ItD(IterEasyID AH_IterEasyID , TypeSize AI_FarNum)
|
||||
{ return ItD((TypeData*)AH_IterEasyID , AI_FarNum); }
|
||||
|
||||
TypeDataC& ItD(TypeDataC * AP_Type , TypeSize AI_FarNum) const
|
||||
{ return *(AP_Type + AI_FarNum); }
|
||||
TypeDataC& ItD(iterator & ARR_CIterator , TypeSize AI_FarNum) const
|
||||
{ return *(ARR_CIterator+AI_FarNum); }
|
||||
TypeDataC& ItD(IterEasyIDc AH_IterEasyID , TypeSize AI_FarNum) const
|
||||
{ return ItD((TypeDataC*)AH_IterEasyID, AI_FarNum); }
|
||||
|
||||
public:
|
||||
};/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -291,7 +291,7 @@ namespace ZNsMain
|
||||
|
||||
static int Minus /*#################################################*/
|
||||
(
|
||||
const TypeChar* APC_Left , const TypeChar* APC_Right,
|
||||
TypeCharC* APC_Left , TypeCharC* APC_Right,
|
||||
TypeLength AL_LeftLength, TypeLength AL_RightLength
|
||||
)
|
||||
/*##################################################################*/
|
||||
@ -350,7 +350,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
static int Minus #@###################################################
|
||||
(
|
||||
const TypeChar* APC_Left , const TypeChar* APC_Right,
|
||||
TypeCharC* APC_Left , TypeCharC* APC_Right,
|
||||
TypeLength AL_LeftLength, TypeLength AL_RightLength
|
||||
)
|
||||
####################################################################*/
|
||||
@ -547,8 +547,12 @@ namespace ZNsMain
|
||||
}/*
|
||||
template<typename TTyChars> static bool DoClose(const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch) */
|
||||
|
||||
static bool DoClose(
|
||||
TypeCharC* APC_Origin, TypeCharC* APC_Search, TypeLength AL_OriginLength, TypeLength AL_SearchLength)
|
||||
static bool DoClose /*//////////////////////////////////////*/
|
||||
(
|
||||
TypeCharC* APC_Origin , TypeCharC* APC_Search,
|
||||
TypeLength AL_OriginLength, TypeLength AL_SearchLength
|
||||
)
|
||||
/*##########################################################*/
|
||||
{
|
||||
const bool CB_IsBad = /*:::::::::::::::*/
|
||||
(
|
||||
@ -569,8 +573,12 @@ namespace ZNsMain
|
||||
|
||||
return true;
|
||||
}/*
|
||||
static bool DoClose(
|
||||
TypeCharC* APC_Origin, TypeCharC* APC_Search, TypeLength AL_OriginLength, TypeLength AL_SearchLength)*/
|
||||
static bool DoClose //////////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin , TypeCharC* APC_Search,
|
||||
TypeLength AL_OriginLength, TypeLength AL_SearchLength
|
||||
)
|
||||
############################################################*/
|
||||
|
||||
|
||||
template<typename TTyChars> static bool DoEndLinear(
|
||||
@ -816,7 +824,8 @@ namespace ZNsMain
|
||||
//////////// ) ////////////////////////////////////////////////*/
|
||||
|
||||
|
||||
static TypeLength FindPosEsc( ////////////////////////////////////
|
||||
static TypeLength FindPosEsc /////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeCharC* APC_Search ,
|
||||
TypeCharC* APC_Escape ,
|
||||
@ -824,7 +833,8 @@ namespace ZNsMain
|
||||
TypeLength AL_SearchLen ,
|
||||
TypeLength AL_EscapeLen ,
|
||||
TypeLength AL_StartPos=0
|
||||
/*//////////*/ ) /////////////////////////////////////////////////
|
||||
)
|
||||
//////////////////////////////////////////////////////////////////
|
||||
{
|
||||
if(AL_EscapeLen<1) return ZtCMainChars::FindPos
|
||||
(
|
||||
@ -841,7 +851,7 @@ namespace ZNsMain
|
||||
|
||||
if(CB_IsBad) return -1;
|
||||
|
||||
const TypeChar* VP_Origin = APC_Origin+AL_StartPos ;
|
||||
TypeCharC* VP_Origin = APC_Origin+AL_StartPos ;
|
||||
bool VB_DoEscape= false ;
|
||||
TypeLength i = 0 ;
|
||||
TypeLength VL_MaxLoop =
|
||||
@ -894,7 +904,8 @@ namespace ZNsMain
|
||||
|
||||
return -1;
|
||||
}/*
|
||||
static TypeLength FindPosEsc( ////////////////////////////////////
|
||||
static TypeLength FindPosEsc /////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeCharC* APC_Search ,
|
||||
TypeCharC* APC_Escape ,
|
||||
@ -902,7 +913,8 @@ namespace ZNsMain
|
||||
TypeLength AL_SearchLen ,
|
||||
TypeLength AL_EscapeLen ,
|
||||
TypeLength AL_StartPos=0
|
||||
////////////// ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
////////////////////////////////////////////////////////////////*/
|
||||
|
||||
|
||||
template<typename TTyChars> static TypeLength FindPosEsc(
|
||||
@ -919,7 +931,8 @@ namespace ZNsMain
|
||||
/* APC_Search 문자열을 찾는데 APC_WrapStart 로 시작한다면 APC_WrapClose
|
||||
을 찾고 바로 다음에 APC_Search 이 있어야 그 위치를 반환한다. */
|
||||
|
||||
static TypeLength FindPosEscWrap( ////////////////////////////////
|
||||
static TypeLength FindPosEscWrap /////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeCharC* APC_Search ,
|
||||
TypeCharC* APC_Escape ,
|
||||
@ -931,7 +944,8 @@ namespace ZNsMain
|
||||
TypeLength AL_WrapStartLen ,
|
||||
TypeLength AL_WrapCloseLen ,
|
||||
TypeLength AL_StartPos=0
|
||||
/*//////////*/ ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
//////////////////////////////////////////////////////////////////
|
||||
{
|
||||
const bool CB_IsBad = ///////////////////////
|
||||
(
|
||||
@ -984,9 +998,11 @@ namespace ZNsMain
|
||||
}/*
|
||||
if(CB_DoStart) */
|
||||
|
||||
return ZtCMainChars::FindPos(APC_Origin, APC_Search, AL_OriginLen, AL_SearchLen, AL_StartPos);
|
||||
return ZtCMainChars::FindPos
|
||||
(APC_Origin, APC_Search, AL_OriginLen, AL_SearchLen, AL_StartPos);
|
||||
}/*
|
||||
static TypeLength FindPosEscWrap( ////////////////////////////////
|
||||
static TypeLength FindPosEscWrap /////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeCharC* APC_Search ,
|
||||
TypeCharC* APC_Escape ,
|
||||
@ -998,32 +1014,27 @@ namespace ZNsMain
|
||||
TypeLength AL_WrapStartLen ,
|
||||
TypeLength AL_WrapCloseLen ,
|
||||
TypeLength AL_StartPos=0
|
||||
////////////// ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
////////////////////////////////////////////////////////////////*/
|
||||
|
||||
template<typename TTyChars> static TypeLength FindPosEscWrap( //////
|
||||
template<typename TTyChars> static TypeLength FindPosEscWrap /////
|
||||
(
|
||||
const TTyChars& AR_CCharsOrigin ,
|
||||
const TTyChars& AR_CCharsSearch ,
|
||||
const TTyChars& AR_CCharsEscape ,
|
||||
const TTyChars& AR_CCharsWrapStart,
|
||||
const TTyChars& AR_CCharsWrapClose,
|
||||
TypeLength AL_StartPos=0
|
||||
/*//////////*/ ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
//////////////////////////////////////////////////////////////////
|
||||
{
|
||||
return ZtCMainChars::FindPosEscWrap(
|
||||
return ZtCMainChars::FindPosEscWrap
|
||||
(
|
||||
AR_CCharsOrigin.data(), AR_CCharsSearch.data(), AR_CCharsEscape.data(), AR_CCharsWrapStart.data(), AR_CCharsWrapClose.data(),
|
||||
AR_CCharsOrigin.size(), AR_CCharsSearch.size(), AR_CCharsEscape.size(), AR_CCharsWrapStart.size(), AR_CCharsWrapClose.size(), AL_StartPos
|
||||
/*/////////*/ );
|
||||
}/*
|
||||
template<typename TTyChars> static TypeLength FindPosEscWrap( //////
|
||||
const TTyChars& AR_CCharsOrigin ,
|
||||
const TTyChars& AR_CCharsSearch ,
|
||||
const TTyChars& AR_CCharsEscape ,
|
||||
const TTyChars& AR_CCharsWrapStart,
|
||||
const TTyChars& AR_CCharsWrapClose,
|
||||
TypeLength AL_StartPos=0
|
||||
////////////// ) ///////////////////////////////////////////////*/
|
||||
|
||||
|
||||
);
|
||||
/*********************************/
|
||||
}
|
||||
/*////////////////////////////////////////////////////////////////
|
||||
|
||||
■ FindPosEscWrap() 테스트.
|
||||
@ -1057,7 +1068,8 @@ namespace ZNsMain
|
||||
|
||||
template<
|
||||
typename TStringArray, typename TString> /////////////////////
|
||||
static TypeLength FindPosEscWrap2(
|
||||
static TypeLength FindPosEscWrap2
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeCharC* APC_Escape ,
|
||||
TypeCharC* APC_WrapStart ,
|
||||
@ -1068,7 +1080,8 @@ namespace ZNsMain
|
||||
TypeLength AL_WrapCloseLen ,
|
||||
TStringArray& ARA_SearchArray ,
|
||||
TString*& APR_CStringStart
|
||||
/*//////////*/ ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
//////////////////////////////////////////////////////////////////
|
||||
{
|
||||
if(AL_OriginLen<1) return -1;
|
||||
|
||||
@ -1120,7 +1133,8 @@ namespace ZNsMain
|
||||
}/*
|
||||
template<
|
||||
typename TStringArray, typename TString> /////////////////////
|
||||
static TypeLength FindPosEscWrap2(
|
||||
static TypeLength FindPosEscWrap2
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeCharC* APC_Escape ,
|
||||
TypeCharC* APC_WrapStart ,
|
||||
@ -1131,7 +1145,8 @@ namespace ZNsMain
|
||||
TypeLength AL_WrapCloseLen ,
|
||||
TStringArray& ARA_SearchArray ,
|
||||
TString*& APR_CStringStart
|
||||
////////////// ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
////////////////////////////////////////////////////////////////*/
|
||||
|
||||
template<
|
||||
typename TTyChars, typename TStringArray, typename TString>
|
||||
@ -1144,23 +1159,13 @@ namespace ZNsMain
|
||||
TString*& APR_CStringStart
|
||||
/*//////////*/ ) ///////////////////////////////////////////////*/
|
||||
{
|
||||
return ZtCMainChars::FindPosEscWrap2(
|
||||
return ZtCMainChars::FindPosEscWrap2
|
||||
(
|
||||
AR_CCharsOrigin.data(), AR_CCharsEscape.data(), AR_CCharsWrapStart.data(), AR_CCharsWrapClose.data(),
|
||||
AR_CCharsOrigin.size(), AR_CCharsEscape.size(), AR_CCharsWrapStart.size(), AR_CCharsWrapClose.size(), ARA_SearchArray, RR(APR_CStringStart)
|
||||
/*:::::*/ );
|
||||
}/*
|
||||
template<
|
||||
typename TTyChars, typename TStringArray, typename TString>
|
||||
static TypeLength FindPosEscWrap2( ///////////////////////////////
|
||||
const TTyChars& AR_CCharsOrigin ,
|
||||
const TTyChars& AR_CCharsEscape ,
|
||||
const TTyChars& AR_CCharsWrapStart,
|
||||
const TTyChars& AR_CCharsWrapClose,
|
||||
TStringArray& ARA_SearchArray ,
|
||||
TString*& APR_CStringStart
|
||||
////////////// ) ///////////////////////////////////////////////*/
|
||||
|
||||
|
||||
);
|
||||
/*::::::::::::::::::::::::::::::::*/
|
||||
}
|
||||
/*////////////////////////////////////////////////////////////////
|
||||
|
||||
■ FindPosEscWrap2() 테스트.
|
||||
@ -1367,7 +1372,8 @@ namespace ZNsMain
|
||||
const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsWrapStart, const TTyChars& AR_CCharsWrapClose)*/
|
||||
|
||||
|
||||
static TypeLength FindPosLinear( /////////////////////////////////
|
||||
static TypeLength FindPosLinear //////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin1 ,
|
||||
TypeCharC* APC_Origin2 ,
|
||||
TypeCharC* APC_Search ,
|
||||
@ -1378,7 +1384,8 @@ namespace ZNsMain
|
||||
TypeLength& ARRL_SearchedPos2 ,
|
||||
TypeLength& ARRL_SearchedLen1 ,
|
||||
TypeLength& ARRL_SearchedLen2
|
||||
/*//////////*/ ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
/*##############################################################*/
|
||||
{
|
||||
/* APC_Origin1 과 APC_Origin2 이 이어진 문자열로 보았을때
|
||||
APC_Search 이 나오는 위치를 구한다.
|
||||
@ -1468,7 +1475,8 @@ namespace ZNsMain
|
||||
|
||||
return ARRL_SearchedPos2;
|
||||
}/*
|
||||
static TypeLength FindPosLinear( /////////////////////////////////
|
||||
static TypeLength FindPosLinear //////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin1 ,
|
||||
TypeCharC* APC_Origin2 ,
|
||||
TypeCharC* APC_Search ,
|
||||
@ -1479,9 +1487,11 @@ namespace ZNsMain
|
||||
TypeLength& ARRL_SearchedPos2 ,
|
||||
TypeLength& ARRL_SearchedLen1 ,
|
||||
TypeLength& ARRL_SearchedLen2
|
||||
////////////// ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
################################################################*/
|
||||
|
||||
template<typename TTyChars> static TypeLength FindPosLinear( /////
|
||||
template<typename TTyChars> static TypeLength FindPosLinear //////
|
||||
(
|
||||
const TTyChars& AR_CCharsOrigin1 ,
|
||||
const TTyChars& AR_CCharsOrigin2 ,
|
||||
const TTyChars& AR_CCharsSearch ,
|
||||
@ -1489,7 +1499,8 @@ namespace ZNsMain
|
||||
TypeLength& ARRL_SearchedPos2,
|
||||
TypeLength& ARRL_SearchedLen1,
|
||||
TypeLength& ARRL_SearchedLen2
|
||||
/*//////////*/ ) ///////////////////////////////////////////////*/
|
||||
)
|
||||
/*##############################################################*/
|
||||
{
|
||||
return ZtCMainChars::FindPosLinear
|
||||
(
|
||||
@ -1497,17 +1508,9 @@ namespace ZNsMain
|
||||
AR_CCharsOrigin1.size(), AR_CCharsOrigin2.size(), AR_CCharsSearch.size(),
|
||||
RR(ARRL_SearchedPos1) , RR(ARRL_SearchedPos2) , RR(ARRL_SearchedLen1) , RR(ARRL_SearchedLen2)
|
||||
);
|
||||
/*++++++++++++++++++++++++++++++*/
|
||||
}/*
|
||||
template<typename TTyChars> static TypeLength FindPosLinear( /////
|
||||
const TTyChars& AR_CCharsOrigin1 ,
|
||||
const TTyChars& AR_CCharsOrigin2 ,
|
||||
const TTyChars& AR_CCharsSearch ,
|
||||
TypeLength& ARRL_SearchedPos1,
|
||||
TypeLength& ARRL_SearchedPos2,
|
||||
TypeLength& ARRL_SearchedLen1,
|
||||
TypeLength& ARRL_SearchedLen2
|
||||
////////////// ) ///////////////////////////////////////////////*/
|
||||
/*::::::::::::::::::::::::::::::*/
|
||||
}
|
||||
/*##############################################################*/
|
||||
|
||||
|
||||
/*////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -3066,14 +3069,16 @@ namespace ZNsMain
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
template<typename TSearchInfoList> static void MakeSplitInfoList(
|
||||
template<typename TSearchInfoList> static void MakeSplitInfoList //////////
|
||||
(
|
||||
TypeCharC* APC_OriginChar,
|
||||
TypeCharC* APC_Search ,
|
||||
TypeLength AL_OriginLen ,
|
||||
TypeLength AL_SearchLen ,
|
||||
TypeLength AL_StartPos ,
|
||||
TSearchInfoList& ARR_InfoList
|
||||
/*//////////*/ ) //////////////////////////////////////////////*/
|
||||
)
|
||||
/*#######################################################################*/
|
||||
{
|
||||
typedef typename TSearchInfoList::TypeData ZCSearchInfo;
|
||||
|
||||
@ -3125,14 +3130,16 @@ namespace ZNsMain
|
||||
}/*
|
||||
if(VL_PrevPos<AL_OriginLen)*/
|
||||
}/*
|
||||
template<typename TSearchInfoList> static void MakeSplitInfoList(
|
||||
template<typename TSearchInfoList> static void MakeSplitInfoList //////////
|
||||
(
|
||||
TypeCharC* APC_OriginChar,
|
||||
TypeCharC* APC_Search ,
|
||||
TypeLength AL_OriginLen ,
|
||||
TypeLength AL_SearchLen ,
|
||||
TypeLength AL_StartPos ,
|
||||
TSearchInfoList& ARR_InfoList
|
||||
////////////// ) //////////////////////////////////////////////*/
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars, typename TSearchInfoList> static void MakeSplitInfoList
|
||||
(
|
||||
@ -3157,10 +3164,12 @@ namespace ZNsMain
|
||||
|
||||
// APC_Search 문자열을 찾아서, 있으면 그 문자열 길이까지 구한다.
|
||||
|
||||
static TypeLength GetLength_Find(
|
||||
static TypeLength GetLength_Find //////////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen
|
||||
/*//////////*/ )
|
||||
)
|
||||
/*#######################################################################*/
|
||||
{
|
||||
if(AL_OriginLen<1 || AL_SearchLen<1 || AL_OriginLen<AL_SearchLen)
|
||||
return 0;
|
||||
@ -3193,10 +3202,12 @@ namespace ZNsMain
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static TypeLength GetLength_Find(
|
||||
static TypeLength GetLength_Find //////////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen
|
||||
////////////// ) */
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars> static TypeLength
|
||||
GetLength_Find(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
|
||||
@ -3213,8 +3224,11 @@ namespace ZNsMain
|
||||
/* ARA_SearchArray 의 앞 원소인 문자열부터 찾기 시작하므로,
|
||||
먼저 찾아야 하는 문자열은 ARA_SearchArray 의 앞에 있는 것이 좋다. */
|
||||
|
||||
template<typename TStringArray> static TypeLength GetLength_Find2(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray)
|
||||
template<typename TStringArray> static TypeLength GetLength_Find2 /////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray
|
||||
)
|
||||
/*#######################################################################*/
|
||||
{
|
||||
TypeLength VL_ArrSize=ARA_SearchArray.size();
|
||||
TypeLength VL_NowSize;
|
||||
@ -3242,8 +3256,11 @@ namespace ZNsMain
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
template<typename TStringArray> static TypeLength GetLength_Find2(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray) */
|
||||
template<typename TStringArray> static TypeLength GetLength_Find2 /////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_Find2(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray)
|
||||
@ -3256,10 +3273,12 @@ namespace ZNsMain
|
||||
|
||||
// APC_Search 문자열의 문자 중에 하나라도 일치하면 그 길이까지 구해온다.
|
||||
|
||||
static TypeLength GetLength_FindChar(
|
||||
static TypeLength GetLength_FindChar //////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen
|
||||
/*//////////*/ )
|
||||
)
|
||||
/*#######################################################################*/
|
||||
{
|
||||
if(AL_OriginLen<1 || AL_SearchLen<1) return 0;
|
||||
|
||||
@ -3287,24 +3306,31 @@ namespace ZNsMain
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static TypeLength GetLength_FindChar(
|
||||
static TypeLength GetLength_FindChar //////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen
|
||||
////////////// ) */
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars>
|
||||
static TypeLength GetLength_FindChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
|
||||
template<typename TTyChars> static TypeLength GetLength_FindChar
|
||||
(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
|
||||
{
|
||||
return ZtCMainChars::GetLength_FindChar(
|
||||
CCharsOrigin.data(), CCharsOrigin.size(),
|
||||
CCharsSearch.data(), CCharsSearch.size()
|
||||
/*//////////*/ );
|
||||
}/*
|
||||
template<typename TTyChars>
|
||||
static TypeLength GetLength_FindChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch) */
|
||||
}
|
||||
/*#######################################################################*/
|
||||
|
||||
template<typename TStringArray> static TypeLength GetLength_FindChar2(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray)
|
||||
|
||||
template<typename TStringArray> static TypeLength GetLength_FindChar2 /////
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeLength AL_OriginLen ,
|
||||
const TStringArray& ARA_SearchArray
|
||||
)
|
||||
/*#######################################################################*/
|
||||
{
|
||||
TypeLength VL_ArrSize=ARA_SearchArray.size();
|
||||
TypeLength VL_NowSize=0;
|
||||
@ -3334,8 +3360,13 @@ namespace ZNsMain
|
||||
|
||||
return VL_NowSize;
|
||||
}/*
|
||||
template<typename TStringArray> static TypeLength GetLength_FindChar2(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray) */
|
||||
template<typename TStringArray> static TypeLength GetLength_FindChar2 /////
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeLength AL_OriginLen ,
|
||||
const TStringArray& ARA_SearchArray
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_FindChar2(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray)
|
||||
@ -3349,13 +3380,13 @@ namespace ZNsMain
|
||||
/* APC_Search 문자열을 찾아서, 있으면 그 문자열 길이까지 구한다.
|
||||
단 찾는 문자열 앞에 APC_Escape 문자열이 없어야 한다. */
|
||||
|
||||
static TypeLength GetLength_FindEscape
|
||||
static TypeLength GetLength_FindEscape ////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen,
|
||||
TypeCharC* APC_Escape, TypeLength AL_EscapeLen
|
||||
)
|
||||
//////////////////////////////////////
|
||||
/*#######################################################################*/
|
||||
{
|
||||
if(AL_EscapeLen<1) return ZtCMainChars::
|
||||
GetLength_Find(APC_Origin, AL_OriginLen, APC_Search,AL_SearchLen);
|
||||
@ -3408,13 +3439,13 @@ namespace ZNsMain
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static TypeLength GetLength_FindEscape
|
||||
static TypeLength GetLength_FindEscape ////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen,
|
||||
TypeCharC* APC_Escape, TypeLength AL_EscapeLen
|
||||
)
|
||||
////////////////////////////////////*/
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars> static TypeLength GetLength_FindEscape(
|
||||
const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch, const TTyChars& AR_CCharsEscape)
|
||||
@ -3556,10 +3587,12 @@ namespace ZNsMain
|
||||
static TypeLength GetLength_FindSerial(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray) */
|
||||
|
||||
|
||||
static TypeLength GetLength_FindSerialChar(
|
||||
static TypeLength GetLength_FindSerialChar ////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen
|
||||
/*//////////*/ )
|
||||
)
|
||||
/*#######################################################################*/
|
||||
{
|
||||
// APC_Search 의 각 문자가 APC_Origin 에 순서대로 있어야 한다.
|
||||
|
||||
@ -3587,10 +3620,12 @@ namespace ZNsMain
|
||||
|
||||
return VL_FindCnt<AL_SearchLen ? 0 : VL_NowPos ;
|
||||
}/*
|
||||
static TypeLength GetLength_FindSerialChar(
|
||||
static TypeLength GetLength_FindSerialChar
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen
|
||||
////////////// ) */
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars>
|
||||
static TypeLength GetLength_FindSerialChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
|
||||
@ -3603,8 +3638,11 @@ namespace ZNsMain
|
||||
template<typename TTyChars>
|
||||
static TypeLength GetLength_FindSerialChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch) */
|
||||
|
||||
template<typename TStringArray> static TypeLength GetLength_FindSerialChar2(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray)
|
||||
template<typename TStringArray> static TypeLength GetLength_FindSerialChar2
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray
|
||||
)
|
||||
/*#######################################################################*/
|
||||
{
|
||||
TypeLength VL_ArrSize=ARA_SearchArray.size();
|
||||
TypeLength VL_NowSize=0;
|
||||
@ -3635,8 +3673,11 @@ namespace ZNsMain
|
||||
|
||||
return VL_SumSize;
|
||||
}/*
|
||||
template<typename TStringArray> static TypeLength GetLength_FindSerialChar2(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray) */
|
||||
template<typename TStringArray> static TypeLength GetLength_FindSerialChar2
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen, const TStringArray& ARA_SearchArray
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_FindSerialChar2(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray)
|
||||
@ -3647,13 +3688,13 @@ namespace ZNsMain
|
||||
static TypeLength GetLength_FindSerialChar2(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray) */
|
||||
|
||||
|
||||
template<typename TStringArray> static TypeLength GetLength_StartFind
|
||||
template<typename TStringArray> static TypeLength GetLength_StartFind /////
|
||||
(
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeLength AL_Length , const
|
||||
TStringArray& ARA_SearchArray
|
||||
)
|
||||
/*#################################################################*/
|
||||
/*#######################################################################*/
|
||||
{
|
||||
/*//////////////////////////////////////////////////
|
||||
|
||||
@ -3706,13 +3747,14 @@ namespace ZNsMain
|
||||
|
||||
return VL_SumSize;
|
||||
}/*
|
||||
template<typename TStringArray> static TypeLength GetLength_StartFind
|
||||
template<typename TStringArray> static TypeLength GetLength_StartFind /////
|
||||
(
|
||||
TypeCharC* APC_Origin,
|
||||
TypeLength AL_Length , const
|
||||
TStringArray& ARA_SearchArray
|
||||
) */
|
||||
/*#################################################################*/
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_StartFind(const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray)
|
||||
@ -3725,12 +3767,12 @@ namespace ZNsMain
|
||||
|
||||
// GetLength_FindSerialChar() 와 비슷하나, 1 번 원소의 1 번 문자로 시작해야 하는 점이 다르다.
|
||||
|
||||
static TypeLength GetLength_StartFindChar
|
||||
static TypeLength GetLength_StartFindChar /////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen
|
||||
)
|
||||
/////////////////////////////////////////
|
||||
/*#######################################################################*/
|
||||
{
|
||||
// APC_Search 의 각 문자가 APC_Origin 에 순서대로 있어야 한다.
|
||||
|
||||
@ -3768,12 +3810,12 @@ namespace ZNsMain
|
||||
|
||||
return VL_FindCnt<AL_SearchLen ? 0 : VL_NowPos ;
|
||||
}/*
|
||||
static TypeLength GetLength_StartFindChar
|
||||
static TypeLength GetLength_StartFindChar /////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_OriginLen,
|
||||
TypeCharC* APC_Search, TypeLength AL_SearchLen
|
||||
)
|
||||
///////////////////////////////////////*/
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars> static TypeLength
|
||||
GetLength_StartFindChar(const TTyChars& CCharsOrigin, const TTyChars& CCharsSearch)
|
||||
@ -3962,12 +4004,12 @@ namespace ZNsMain
|
||||
static TypeLength GetLength_PermitRange(const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray) */
|
||||
|
||||
|
||||
static TypeLength GetLength_PermitChar
|
||||
static TypeLength GetLength_PermitChar ////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_Length,
|
||||
TypeCharC* APC_Permit, TypeLength AL_PermitLength
|
||||
)
|
||||
//////////////////////////////////////
|
||||
/*#######################################################################*/
|
||||
{
|
||||
if(AL_Length<1 || AL_PermitLength<1) return 0;
|
||||
|
||||
@ -3997,12 +4039,13 @@ namespace ZNsMain
|
||||
|
||||
return VL_SearchLen;
|
||||
}/*
|
||||
static TypeLength GetLength_PermitChar
|
||||
static TypeLength GetLength_PermitChar ////////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_Length,
|
||||
TypeCharC* APC_Permit, TypeLength AL_PermitLength
|
||||
)
|
||||
////////////////////////////////////*/
|
||||
#########################################################################*/
|
||||
|
||||
|
||||
template<typename TTyChars>
|
||||
static TypeLength GetLength_PermitChar(const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch)
|
||||
@ -4328,12 +4371,12 @@ namespace ZNsMain
|
||||
const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray) */
|
||||
|
||||
|
||||
static TypeLength GetLength_NoPermitChar
|
||||
static TypeLength GetLength_NoPermitChar //////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin , TypeLength AL_Length,
|
||||
TypeCharC* APC_NoPermit, TypeLength AL_NoPermitLength
|
||||
)
|
||||
////////////////////////////////////////
|
||||
/*#######################################################################*/
|
||||
{
|
||||
if(AL_Length<1 || AL_NoPermitLength<1) return 0;
|
||||
|
||||
@ -4359,12 +4402,12 @@ namespace ZNsMain
|
||||
|
||||
return VL_SearchLen;
|
||||
}/*
|
||||
static TypeLength GetLength_NoPermitChar
|
||||
static TypeLength GetLength_NoPermitChar //////////////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin , TypeLength AL_Length,
|
||||
TypeCharC* APC_NoPermit, TypeLength AL_NoPermitLength
|
||||
)
|
||||
//////////////////////////////////////*/
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars>
|
||||
static TypeLength GetLength_NoPermitChar(
|
||||
@ -4434,12 +4477,12 @@ namespace ZNsMain
|
||||
const TTyChars& AR_CCharsOrigin, const TStringArray& ARA_SearchArray) */
|
||||
|
||||
|
||||
static TypeLength GetLength_NoPermitCharRange
|
||||
static TypeLength GetLength_NoPermitCharRange ///////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_Length,
|
||||
TypeCharC* APC_Permit, TypeLength AL_PermitLength
|
||||
)
|
||||
/*#########################################*/
|
||||
/*#####################################################################*/
|
||||
{
|
||||
/*////////////////////////////////////////////////
|
||||
|
||||
@ -4481,12 +4524,12 @@ namespace ZNsMain
|
||||
|
||||
return VL_SearchLen;
|
||||
}/*
|
||||
static TypeLength GetLength_NoPermitCharRange
|
||||
static TypeLength GetLength_NoPermitCharRange ///////////////////////////
|
||||
(
|
||||
TypeCharC* APC_Origin, TypeLength AL_Length,
|
||||
TypeCharC* APC_Permit, TypeLength AL_PermitLength
|
||||
)
|
||||
###########################################*/
|
||||
#######################################################################*/
|
||||
|
||||
template<typename TTyChars>
|
||||
static TypeLength GetLength_NoPermitCharRange(const TTyChars& AR_CCharsOrigin, const TTyChars& AR_CCharsSearch)
|
||||
@ -4654,15 +4697,16 @@ namespace ZNsMain
|
||||
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over) */
|
||||
|
||||
|
||||
template<typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_FindChar( ///////////////////////////////
|
||||
template<typename TStringArray> static TypeLength GetLength_Repeat_FindChar
|
||||
(
|
||||
int AI_RepeatMin ,
|
||||
int AI_RepeatMax ,
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeLength AL_Length ,
|
||||
const TStringArray& ARA_SearchArray ,
|
||||
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
|
||||
/*/////////*/ )
|
||||
)
|
||||
/*#######################################################################*/
|
||||
{
|
||||
int VI_RepeatCnt=0;
|
||||
TypeLength VL_LengthAll=0;
|
||||
@ -4726,15 +4770,16 @@ namespace ZNsMain
|
||||
|
||||
return VL_LengthAll;
|
||||
}/*
|
||||
template<typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_FindChar( ///////////////////////////////
|
||||
template<typename TStringArray> static TypeLength GetLength_Repeat_FindChar
|
||||
(
|
||||
int AI_RepeatMin ,
|
||||
int AI_RepeatMax ,
|
||||
TypeCharC* APC_Origin ,
|
||||
TypeLength AL_Length ,
|
||||
const TStringArray& ARA_SearchArray ,
|
||||
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
|
||||
/?/////////// ) */
|
||||
)
|
||||
#########################################################################*/
|
||||
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_FindChar(
|
||||
@ -5822,15 +5867,17 @@ namespace ZNsMain
|
||||
//////////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_NoPermitRange(
|
||||
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over)
|
||||
static TypeLength GetLength_Repeat_NoPermitRange
|
||||
(
|
||||
int AI_RepeatMin, int AI_RepeatMax ,
|
||||
const TTyChars& AR_CChars , const TStringArray& ARA_SearchArray,
|
||||
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
|
||||
)
|
||||
{
|
||||
return ZtCMainChars::GetLength_Repeat_NoPermitRange(
|
||||
AI_RepeatMin, AI_RepeatMax, AR_CChars.data(), AR_CChars.size(), ARA_SearchArray, AE_ESearchMax);
|
||||
}/*
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_NoPermitRange(
|
||||
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over) */
|
||||
}
|
||||
/*###########################################################################*/
|
||||
|
||||
|
||||
template<typename TStringArray> static TypeLength GetLength_Repeat_NoPermitChar
|
||||
@ -5922,15 +5969,18 @@ namespace ZNsMain
|
||||
#############################################################################*/
|
||||
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_NoPermitChar(
|
||||
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over)
|
||||
static TypeLength GetLength_Repeat_NoPermitChar
|
||||
(
|
||||
int AI_RepeatMin, int AI_RepeatMax ,
|
||||
const TTyChars& AR_CChars , const TStringArray& ARA_SearchArray,
|
||||
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
|
||||
)
|
||||
/*################################################################################*/
|
||||
{
|
||||
return ZtCMainChars::GetLength_Repeat_NoPermitChar(
|
||||
AI_RepeatMin, AI_RepeatMax, AR_CChars.data(), AR_CChars.size(), ARA_SearchArray, AE_ESearchMax);
|
||||
}/*
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_NoPermitChar(
|
||||
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over) */
|
||||
}
|
||||
/*################################################################################*/
|
||||
|
||||
|
||||
template<typename TStringArray> static TypeLength GetLength_Repeat_NoPermitCharRange
|
||||
@ -6022,15 +6072,18 @@ namespace ZNsMain
|
||||
##################################################################################*/
|
||||
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_NoPermitCharRange(
|
||||
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over)
|
||||
static TypeLength GetLength_Repeat_NoPermitCharRange
|
||||
(
|
||||
int AI_RepeatMin, int AI_RepeatMax ,
|
||||
const TTyChars& AR_CChars , const TStringArray& ARA_SearchArray,
|
||||
ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
|
||||
)
|
||||
/*################################################################################*/
|
||||
{
|
||||
return ZtCMainChars::GetLength_Repeat_NoPermitCharRange(
|
||||
AI_RepeatMin, AI_RepeatMax, AR_CChars.data(), AR_CChars.size(), ARA_SearchArray, AE_ESearchMax);
|
||||
}/*
|
||||
template<typename TTyChars, typename TStringArray>
|
||||
static TypeLength GetLength_Repeat_NoPermitCharRange(
|
||||
int AI_RepeatMin, int AI_RepeatMax, const TTyChars& AR_CChars, const TStringArray& ARA_SearchArray, ZNsEnum::ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over) */
|
||||
}
|
||||
/*################################################################################*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
@ -6147,11 +6200,15 @@ namespace ZNsMain
|
||||
}/*
|
||||
ZtCSearchCChars()*/
|
||||
|
||||
ZtCSearchCChars(int AI_RepeatCntMin , int AI_RepeatCntMax ,
|
||||
ZtCSearchCChars //////////////////////////////////////////////////
|
||||
(
|
||||
int AI_RepeatCntMin , int AI_RepeatCntMax ,
|
||||
int AI_SearchCharMin, int AI_SearchCharMax,
|
||||
int AI_SearchSumMin , int AI_SearchSumMax ,
|
||||
ZERegFlag AE_ERegFlag, ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
|
||||
/*//////////*/ )
|
||||
ZERegFlag AE_ERegFlag,
|
||||
ZESearchMax AE_ESearchMax = ZNsEnum::ZESearchMax_Over
|
||||
)
|
||||
/*##############################################################*/
|
||||
{
|
||||
Init(AI_RepeatCntMin, AI_RepeatCntMax, AI_SearchCharMin, AI_SearchCharMax, AI_SearchSumMin, AI_SearchSumMax, AE_ERegFlag, AE_ESearchMax);
|
||||
}/*
|
||||
@ -6175,11 +6232,15 @@ namespace ZNsMain
|
||||
}/*
|
||||
void Init()*/
|
||||
|
||||
void Init ( int AI_RepeatCntMin , int AI_RepeatCntMax ,
|
||||
void Init ////////////////////////////////////////////////////////
|
||||
(
|
||||
int AI_RepeatCntMin , int AI_RepeatCntMax ,
|
||||
int AI_SearchCharMin, int AI_SearchCharMax,
|
||||
int AI_SearchSumMin , int AI_SearchSumMax ,
|
||||
ZERegFlag AE_ERegFlag, ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
|
||||
/*///////*/ )
|
||||
ZERegFlag AE_ERegFlag ,
|
||||
ZESearchMax AE_ESearchMax = ZNsEnum::ZESearchMax_Over
|
||||
)
|
||||
/*##############################################################*/
|
||||
{
|
||||
mi_RepeatCntMin =AI_RepeatCntMin ;
|
||||
mi_RepeatCntMax =AI_RepeatCntMax ;
|
||||
@ -6189,12 +6250,8 @@ namespace ZNsMain
|
||||
mi_SearchSumMax =AI_SearchSumMax ;
|
||||
me_ERegFlag =AE_ERegFlag ;
|
||||
me_ESearchMax =AE_ESearchMax ;
|
||||
}/*
|
||||
void Init ( int AI_RepeatCntMin , int AI_RepeatCntMax ,
|
||||
int AI_SearchCharMin, int AI_SearchCharMax,
|
||||
int AI_SearchSumMin , int AI_SearchSumMax ,
|
||||
ZERegFlag AE_ERegFlag, ZESearchMax AE_ESearchMax=ZNsEnum::ZESearchMax_Over
|
||||
/////////// ) */
|
||||
}
|
||||
/*##############################################################*/
|
||||
|
||||
|
||||
ZtCSearchCChars& GetNowObj() {return *this;}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -767,6 +767,10 @@ namespace ZNsMain
|
||||
class ZtCSimList /*##########################################################*/
|
||||
{
|
||||
public:
|
||||
class ZCLink ;
|
||||
class ZCNodePoint ;
|
||||
class ZNodekPointN;
|
||||
/**************************************************/
|
||||
typedef TType Type ;
|
||||
typedef TType TypeData ;
|
||||
typedef TTypArgu TypeArg ;
|
||||
@ -774,9 +778,29 @@ namespace ZNsMain
|
||||
typedef TTypCInit TypeInit ;
|
||||
typedef TTypSize TypeSize ;
|
||||
typedef TMoveObj TypeMoveObj ;
|
||||
public:
|
||||
|
||||
typedef ZCLink TypeLink ;
|
||||
typedef ZCLink TypeNode ;
|
||||
typedef ZtCSimList TypeList ;
|
||||
typedef ZtCSimList TypeThis ;
|
||||
typedef ZCNodePoint TypeIter ;
|
||||
/**************************************************/
|
||||
typedef const ZCLink ZCLinkC ;
|
||||
|
||||
typedef const TypeThis TypeThisC ;
|
||||
typedef const TypeData TypeDataC ;
|
||||
typedef const TypeList TypeListC ;
|
||||
typedef const TypeLink TypeLinkC ;
|
||||
typedef const TypeNode TypeNodeC ;
|
||||
typedef const TypeIter TypeIterC ;
|
||||
/**************************************************/
|
||||
typedef ZCNodePoint iterator ;
|
||||
typedef ZNodekPointN const_iterator ;
|
||||
typedef ZNodekPointN iteratorN ;
|
||||
/**************************************************/
|
||||
typedef typename TFeeeHeap::
|
||||
template ZtCBody<ZtCSimList> ZCFreeHeap;
|
||||
/**************************************************/
|
||||
public:
|
||||
|
||||
|
||||
@ -859,17 +883,17 @@ namespace ZNsMain
|
||||
}/*
|
||||
const TType& GetData() const*/
|
||||
|
||||
TType& GetData(TTypSize AL_FarNum) // must AL_FarNum >= 0
|
||||
TType& GetData(TypeSize AL_FarNum) // must AL_FarNum >= 0
|
||||
{
|
||||
return GetNextPtr(AL_FarNum)->mo_DataObjt;
|
||||
}/*
|
||||
TType& GetData(TTypSize AL_FarNum)*/
|
||||
TType& GetData(TypeSize AL_FarNum)*/
|
||||
|
||||
const TType& GetData(TTypSize AL_FarNum) const
|
||||
const TType& GetData(TypeSize AL_FarNum) const
|
||||
{
|
||||
return GetNextPtr(AL_FarNum)->mo_DataObjt;
|
||||
}/*
|
||||
const TType& GetData(TTypSize AL_FarNum) const*/
|
||||
const TType& GetData(TypeSize AL_FarNum) const*/
|
||||
|
||||
|
||||
TType& operator* (){return mo_DataObjt;}
|
||||
@ -879,9 +903,9 @@ namespace ZNsMain
|
||||
const TType& operator()() const{return mo_DataObjt;}
|
||||
|
||||
|
||||
ZCLink* GetNextPtr(TTypSize AL_FarNum) // must AL_FarNum > 0
|
||||
ZCLink* GetNextPtr(TypeSize AL_FarNum) // must AL_FarNum > 0
|
||||
{
|
||||
// 이 멤버 함수는 TTypSize 가 용랑이 큰 object 라 할지라도
|
||||
// 이 멤버 함수는 TypeSize 가 용랑이 큰 object 라 할지라도
|
||||
// 이 함수 내부에서 값이 변하고 있으므로 참조로 받지 않는다.
|
||||
|
||||
ZCLink* VP_TmpLink=this;
|
||||
@ -892,13 +916,13 @@ namespace ZNsMain
|
||||
|
||||
return VP_TmpLink;
|
||||
}/*
|
||||
ZCLink* GetNextPtr(TTypSize AL_FarNum)*/
|
||||
ZCLink* GetNextPtr(TypeSize AL_FarNum)*/
|
||||
|
||||
|
||||
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TTypSize AL_FarNum) const
|
||||
ZCLinkC* const GetNextPtr(TypeSize AL_FarNum) const // or ZCLink const * const GetNextPtr(TypeSize AL_FarNum) const
|
||||
{
|
||||
// TTypSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
|
||||
// TTypSize 을 참조로 받으면 안된다.
|
||||
// TypeSize 가 object 일 경우 AL_FarNum 의 값이 이 함수에서 변하고 있으므로
|
||||
// TypeSize 을 참조로 받으면 안된다.
|
||||
|
||||
ZCLink* VP_TmpLink = const_cast<ZCLink*>(this);
|
||||
|
||||
@ -912,20 +936,11 @@ namespace ZNsMain
|
||||
|
||||
return VP_TmpLink;
|
||||
}/*
|
||||
const ZCLink* const GetNextPtr(TTypSize AL_FarNum) const*/
|
||||
ZCLinkC* const GetNextPtr(TypeSize AL_FarNum) const*/
|
||||
|
||||
|
||||
inline ZCLink* GetNextPtr()
|
||||
{
|
||||
return mp_NextLink;
|
||||
}/*
|
||||
inline ZCLink* GetNextPtr()*/
|
||||
|
||||
inline const ZCLink* const GetNextPtr() const
|
||||
{
|
||||
return mp_NextLink;
|
||||
}/*
|
||||
inline const ZCLink* const GetNextPtr() const*/
|
||||
inline ZCLink * GetNextPtr() { return mp_NextLink; }
|
||||
inline ZCLinkC* const GetNextPtr() const{ return mp_NextLink; }
|
||||
|
||||
ZCLink& operator=(TypeArg AR_Type)
|
||||
{
|
||||
@ -933,36 +948,301 @@ namespace ZNsMain
|
||||
}/*
|
||||
ZCLink& operator=(TypeArg AR_Type)*/
|
||||
|
||||
ZCLink* operator+(TypeSize AL_Offset)
|
||||
ZCLink& operator+(TypeSize AL_Offset)
|
||||
{
|
||||
ZCLink* VP_CLinkLoop=this;
|
||||
|
||||
__for0(TTypSize, i, AL_Offset)
|
||||
__for0(TypeSize, i, AL_Offset)
|
||||
{
|
||||
VP_CLinkLoop = VP_CLinkLoop->mp_NextLink;
|
||||
}/*
|
||||
__for0(TTypSize, i, AL_Offset)*/
|
||||
__for0(TypeSize, i, AL_Offset)*/
|
||||
|
||||
return *this;
|
||||
}/*
|
||||
ZCLink* operator+(TypeSize AL_Offset)
|
||||
ZCLink& operator+(TypeSize AL_Offset)
|
||||
|
||||
public:*/
|
||||
};/*
|
||||
class ZCLink*/
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
class ZCNodePoint
|
||||
{
|
||||
private:
|
||||
/*****/ TypeList& mr_CurrList;
|
||||
mutable TypeLink* mp_CurrLink; // 사실상 mp_CurrLink!=0
|
||||
mutable TypeSize ml_CurrPos ;
|
||||
public:
|
||||
ZCNodePoint(TypeList& AR_TypeList) :
|
||||
mr_CurrList(AR_TypeList)
|
||||
{
|
||||
mp_CurrLink = AR_TypeList.HeadPtr();
|
||||
ml_CurrPos = 1 ;
|
||||
}
|
||||
ZCNodePoint(const ZCNodePoint& rhs) :
|
||||
mr_CurrList(rhs.mr_CurrList),
|
||||
mp_CurrLink(rhs.mp_CurrLink),
|
||||
ml_CurrPos (rhs.ml_CurrPos )
|
||||
{}
|
||||
public :
|
||||
|
||||
/*************** end class ZCLink ***************/
|
||||
static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)
|
||||
{
|
||||
ZCNodePoint VO_ZCLinkPoint(AR_TypeList);
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************************/
|
||||
}/*
|
||||
static ZCNodePoint MakeTailPoint(TypeList& AR_TypeList)*/
|
||||
static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)
|
||||
{
|
||||
ZCNodePoint VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************************/
|
||||
}/*
|
||||
static ZCNodePoint MakeTailPoint(const TypeIter& AR_TypeIter)*/
|
||||
|
||||
public :
|
||||
|
||||
TypeThis & GetMain() {return mr_CurrList;}
|
||||
TypeNode & GetNode() {return *mp_CurrLink;}
|
||||
|
||||
TypeThisC& GetMain() const{return mr_CurrList;}
|
||||
TypeNodeC& GetNode() const{return *mp_CurrLink;}
|
||||
/***************************************************/
|
||||
TypeSize GetPos () const{return ml_CurrPos ;}
|
||||
/***************************************************/
|
||||
|
||||
|
||||
//public :
|
||||
bool IsValid() const{return mr_CurrList.size()>0;}
|
||||
bool IsEmpty() const{return mr_CurrList.size()<1;}
|
||||
|
||||
|
||||
ZCNodePoint& operator= (const ZCNodePoint& rhs){ return *this; }
|
||||
|
||||
|
||||
TypeData & operator*() {return **mp_CurrLink;}
|
||||
TypeDataC& operator*() const{return **mp_CurrLink;}
|
||||
|
||||
operator TypeLink * () {return mp_CurrLink;}
|
||||
operator TypeLinkC* () const{return mp_CurrLink;}
|
||||
|
||||
operator TypeLink & () {return *mp_CurrLink;}
|
||||
operator TypeLinkC& () const{return *mp_CurrLink;}
|
||||
|
||||
|
||||
bool operator == (const ZCNodePoint& rhs) const
|
||||
{ return ml_CurrPos == rhs.ml_CurrPos; }
|
||||
bool operator != (const ZCNodePoint& rhs) const
|
||||
{ return ml_CurrPos != rhs.ml_CurrPos; }
|
||||
bool operator > (const ZCNodePoint& rhs) const
|
||||
{ return ml_CurrPos > rhs.ml_CurrPos; }
|
||||
bool operator >= (const ZCNodePoint& rhs) const
|
||||
{ return ml_CurrPos >= rhs.ml_CurrPos; }
|
||||
bool operator < (const ZCNodePoint& rhs) const
|
||||
{ return ml_CurrPos < rhs.ml_CurrPos; }
|
||||
bool operator <= (const ZCNodePoint& rhs) const
|
||||
{ return ml_CurrPos <= rhs.ml_CurrPos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos == AL_Size; }
|
||||
bool operator != (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos != AL_Size; }
|
||||
bool operator > (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos > AL_Size; }
|
||||
bool operator >= (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos >= AL_Size; }
|
||||
bool operator < (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos < AL_Size; }
|
||||
bool operator <= (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos <= AL_Size; }
|
||||
|
||||
|
||||
const ZCNodePoint& operator++() const
|
||||
{
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos; return *this ;
|
||||
}/*
|
||||
const ZCNodePoint& operator++() const*/
|
||||
|
||||
ZCNodePoint operator++(int) const
|
||||
{
|
||||
ZCNodePoint VO_NowPoint(*this);
|
||||
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos ; return VO_NowPoint ;
|
||||
}/*
|
||||
ZCNodePoint operator++(int) const*/
|
||||
|
||||
|
||||
const ZCNodePoint& operator+=(TypeSize AL_Distance) const
|
||||
{
|
||||
if(IsEmpty()){return *this;}
|
||||
|
||||
mp_CurrLink = &((*mp_CurrLink)+AL_Distance) ;
|
||||
ml_CurrPos += AL_Distance ;
|
||||
|
||||
return *this; /*:::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
const ZCNodePoint& operator+=(TypeSize AL_Distance) const*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZCNodePoint*/
|
||||
|
||||
|
||||
class ZNodekPointN
|
||||
{
|
||||
protected:
|
||||
const TypeList& mr_CurrList;
|
||||
mutable TypeLinkC* mp_CurrLink; // 사실상 mp_CurrLink!=0
|
||||
mutable TypeSize ml_CurrPos ;
|
||||
public :
|
||||
ZNodekPointN(const TypeList& AR_TypeList) :
|
||||
mr_CurrList(AR_TypeList)
|
||||
{
|
||||
mp_CurrLink = AR_TypeList.HeadPtr();
|
||||
ml_CurrPos = 1 ;
|
||||
}
|
||||
ZNodekPointN(const ZCNodePoint & rhs) :
|
||||
mr_CurrList( rhs.GetMain()),
|
||||
mp_CurrLink(&rhs.GetNode()),
|
||||
ml_CurrPos ( rhs.GetPos ())
|
||||
{}
|
||||
ZNodekPointN(const ZNodekPointN& rhs) :
|
||||
mr_CurrList(rhs.mr_CurrList),
|
||||
mp_CurrLink(rhs.mp_CurrLink),
|
||||
ml_CurrPos (rhs.ml_CurrPos )
|
||||
{}
|
||||
public :
|
||||
|
||||
static ZNodekPointN MakeTailPoint(const TypeList& AR_TypeList)
|
||||
{
|
||||
ZNodekPointN VO_ZCLinkPoint(AR_TypeList);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = AR_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = AR_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZNodekPointN MakeTailPoint(const TypeList& AR_TypeList)*/
|
||||
static ZNodekPointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)
|
||||
{
|
||||
ZNodekPointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZNodekPointN MakeTailPoint(const ZCNodePoint& AR_TypeIter)*/
|
||||
static ZNodekPointN MakeTailPoint(const ZNodekPointN& AR_TypeIter)
|
||||
{
|
||||
ZNodekPointN VO_ZCLinkPoint(AR_TypeIter);
|
||||
|
||||
VO_ZCLinkPoint.mp_CurrLink = VO_ZCLinkPoint.mr_TypeList.mp_TailLink;
|
||||
VO_ZCLinkPoint.ml_CurrPos = VO_ZCLinkPoint.mr_TypeList.ml_LinkSize;
|
||||
|
||||
return VO_ZCLinkPoint; /****************/
|
||||
}/*
|
||||
static ZNodekPointN MakeTailPoint(const ZNodekPointN& AR_TypeIter)*/
|
||||
|
||||
public :
|
||||
|
||||
TypeListC& GetMain() const{return mr_CurrList;}
|
||||
TypeLinkC& GetNode() const{return *mp_CurrLink;}
|
||||
/***************************************************/
|
||||
TypeSize GetPos () const{return ml_CurrPos ;}
|
||||
/***************************************************/
|
||||
|
||||
|
||||
bool IsValid() const{return mr_CurrList.size()>0;}
|
||||
bool IsEmpty() const{return mr_CurrList.size()<1;}
|
||||
|
||||
|
||||
ZNodekPointN& operator= (const ZNodekPointN& rhs){ return *this; }
|
||||
|
||||
|
||||
TypeDataC& operator*() const{return **mp_CurrLink;}
|
||||
operator TypeLinkC* () const{return mp_CurrLink;}
|
||||
operator TypeLinkC& () const{return *mp_CurrLink;}
|
||||
|
||||
|
||||
bool operator == (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos == rhs.ml_CurrPos; }
|
||||
bool operator != (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos != rhs.ml_CurrPos; }
|
||||
bool operator > (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos > rhs.ml_CurrPos; }
|
||||
bool operator >= (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos >= rhs.ml_CurrPos; }
|
||||
bool operator < (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos < rhs.ml_CurrPos; }
|
||||
bool operator <= (const ZNodekPointN& rhs) const
|
||||
{ return ml_CurrPos <= rhs.ml_CurrPos; }
|
||||
|
||||
bool operator == (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos == AL_Size; }
|
||||
bool operator != (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos != AL_Size; }
|
||||
bool operator > (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos > AL_Size; }
|
||||
bool operator >= (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos >= AL_Size; }
|
||||
bool operator < (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos < AL_Size; }
|
||||
bool operator <= (TypeSize AL_Size) const
|
||||
{ return ml_CurrPos <= AL_Size; }
|
||||
|
||||
|
||||
const ZNodekPointN& operator++() const
|
||||
{
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos; return *this ;
|
||||
}/*
|
||||
const ZNodekPointN& operator++() const*/
|
||||
|
||||
ZNodekPointN operator++(int) const
|
||||
{
|
||||
ZNodekPointN VO_NowPoint(*this);
|
||||
|
||||
mp_CurrLink = mp_CurrLink->mp_NextLink;
|
||||
|
||||
++ml_CurrPos ; return VO_NowPoint ;
|
||||
}/*
|
||||
ZNodekPointN operator++(int) const*/
|
||||
|
||||
|
||||
const ZNodekPointN& operator+=(TypeSize AL_Distance) const
|
||||
{
|
||||
if(IsEmpty()){return *this;}
|
||||
|
||||
mp_CurrLink = &((*mp_CurrLink)+AL_Distance) ;
|
||||
ml_CurrPos += AL_Distance ;
|
||||
|
||||
return *this; /*:::::::::::::::::::::::::::*/
|
||||
}/*
|
||||
const ZNodekPointN& operator+=(TypeSize AL_Distance) const*/
|
||||
|
||||
public:
|
||||
};/*
|
||||
class ZNodekPointN*/
|
||||
|
||||
|
||||
public :
|
||||
/*************************************************************/
|
||||
protected:
|
||||
|
||||
TTypSize ml_LinkSize ;
|
||||
TypeSize ml_LinkSize ;
|
||||
ZCLink* mp_HeadLink ;
|
||||
ZCLink* mp_TailLink ; mutable
|
||||
ZCFreeHeap mo_FreeObjt ;
|
||||
@ -973,8 +1253,8 @@ namespace ZNsMain
|
||||
|
||||
ZtCSimList& CopyLink /*######################################*/
|
||||
(
|
||||
const ZCLink* const AP_CopyLink ,
|
||||
TTypSize AL_FarNum ,
|
||||
ZCLinkC* AP_CopyLink ,
|
||||
TypeSize AL_FarNum ,
|
||||
ZtCSimList& ARR_Rhs
|
||||
) const
|
||||
/*###########################################################*/
|
||||
@ -1006,8 +1286,8 @@ namespace ZNsMain
|
||||
}/*
|
||||
ZtCSimList& CopyLink ##########################################
|
||||
(
|
||||
const ZCLink* const AP_CopyLink ,
|
||||
TTypSize AL_FarNum ,
|
||||
ZCLinkC* AP_CopyLink ,
|
||||
TypeSize AL_FarNum ,
|
||||
ZtCSimList& ARR_Rhs
|
||||
) const
|
||||
#############################################################*/
|
||||
@ -1050,7 +1330,7 @@ namespace ZNsMain
|
||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
|
||||
|
||||
|
||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)
|
||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)
|
||||
{
|
||||
if(AP_CutLink==mp_HeadLink)
|
||||
{
|
||||
@ -1081,14 +1361,14 @@ namespace ZNsMain
|
||||
|
||||
return (--ml_LinkSize, AP_CutLink);
|
||||
}/*
|
||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)*/
|
||||
ZCLink* CutLink(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)*/
|
||||
|
||||
|
||||
ZtCSimList& CutLink /*###############################*/
|
||||
(
|
||||
ZCLink* AP_CutHeadPrev,
|
||||
ZCLink* AP_CutHead , TTypSize AL_CutHeadPos,
|
||||
ZCLink* AP_CutTail , TTypSize AL_CutTailPos,
|
||||
ZCLink* AP_CutHead , TypeSize AL_CutHeadPos,
|
||||
ZCLink* AP_CutTail , TypeSize AL_CutTailPos,
|
||||
ZtCSimList& ARR_StoreList
|
||||
)
|
||||
/*###################################################*/
|
||||
@ -1135,8 +1415,8 @@ namespace ZNsMain
|
||||
{
|
||||
std::fstream fileout("DEBUG.txt",std::ios::out | std::ios::app);
|
||||
fileout<<std::endl<<"File : "<<__FILE__<<std::endl<<"Line : "<<__LINE__<<std::endl;
|
||||
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,"<<std::endl;
|
||||
fileout<<" ZCLink* AP_CutTail, TTypSize AL_CutTailPos" <<std::endl;
|
||||
fileout<<"Error In 'ZtCSimList& CutLink( ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,"<<std::endl;
|
||||
fileout<<" ZCLink* AP_CutTail, TypeSize AL_CutTailPos" <<std::endl;
|
||||
fileout<<" /****************/ )" <<std::endl;
|
||||
fileout<<"Static Object ARR_StoreList is not empty"<<std::endl;
|
||||
fileout.close();
|
||||
@ -1155,14 +1435,14 @@ namespace ZNsMain
|
||||
ZtCSimList& CutLink ///////////////////////////////
|
||||
(
|
||||
ZCLink* AP_CutHeadPrev,
|
||||
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TTypSize AL_CutTailPos,
|
||||
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TypeSize AL_CutTailPos,
|
||||
ZtCSimList& ARR_StoreList
|
||||
)
|
||||
/////////////////////////////////////////////////*/
|
||||
|
||||
|
||||
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
||||
ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
||||
{
|
||||
if(AL_DefaultSize<=0) return ARR_StoreList;
|
||||
|
||||
@ -1179,7 +1459,7 @@ namespace ZNsMain
|
||||
|
||||
return ARR_StoreList;
|
||||
}/*
|
||||
ZtCSimList& MakeDefault(TTypSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
||||
ZtCSimList& MakeDefault(TypeSize AL_DefaultSize, ZtCSimList& ARR_StoreList) const
|
||||
|
||||
|
||||
protected: */
|
||||
@ -1242,17 +1522,17 @@ namespace ZNsMain
|
||||
ZtCSimList& operator()(TypeArg AR_Type)*/
|
||||
|
||||
|
||||
TType& operator[](TTypSize AL_Index)
|
||||
TType& operator[](TypeSize AL_Index)
|
||||
{
|
||||
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
||||
}/*
|
||||
TType& operator[](TTypSize AL_Index)*/
|
||||
TType& operator[](TypeSize AL_Index)*/
|
||||
|
||||
const TType& operator[](TTypSize AL_Index) const
|
||||
const TType& operator[](TypeSize AL_Index) const
|
||||
{
|
||||
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
||||
}/*
|
||||
const TType& operator[](TTypSize AL_Index) const*/
|
||||
const TType& operator[](TypeSize AL_Index) const*/
|
||||
|
||||
|
||||
operator TType&(){return AddTailDef()->mo_DataObjt;}
|
||||
@ -1366,7 +1646,7 @@ namespace ZNsMain
|
||||
ZCLink* AddTailDef()*/
|
||||
|
||||
|
||||
void AddHeadDef(TTypSize AL_DefaultSize)
|
||||
void AddHeadDef(TypeSize AL_DefaultSize)
|
||||
{
|
||||
if(AL_DefaultSize<1) return;
|
||||
|
||||
@ -1376,9 +1656,9 @@ namespace ZNsMain
|
||||
);
|
||||
//////////////////////////////////
|
||||
}/*
|
||||
void AddHeadDef(TTypSize AL_DefaultSize)*/
|
||||
void AddHeadDef(TypeSize AL_DefaultSize)*/
|
||||
|
||||
void AddTailDef(TTypSize AL_DefaultSize)
|
||||
void AddTailDef(TypeSize AL_DefaultSize)
|
||||
{
|
||||
if(AL_DefaultSize<1) return;
|
||||
|
||||
@ -1388,7 +1668,14 @@ namespace ZNsMain
|
||||
);
|
||||
//////////////////////////////////
|
||||
}/*
|
||||
void AddTailDef(TTypSize AL_DefaultSize)*/
|
||||
void AddTailDef(TypeSize AL_DefaultSize)*/
|
||||
|
||||
|
||||
TypeData & front() {return mp_HeadLink->mo_DataObjt;}
|
||||
TypeData & back () {return mp_TailLink->mo_DataObjt;}
|
||||
|
||||
TypeDataC& front() const{return mp_HeadLink->mo_DataObjt;}
|
||||
TypeDataC& back () const{return mp_TailLink->mo_DataObjt;}
|
||||
|
||||
|
||||
ZCLink * GetHeadLinkPtr () {return mp_HeadLink;}
|
||||
@ -1399,72 +1686,29 @@ namespace ZNsMain
|
||||
ZCLink * GetTailIterEasy () {return mp_TailLink;}
|
||||
IterEasyID GetTailIterEasyID () {return (IterEasyID )mp_TailLink;}
|
||||
|
||||
TType& front(){return mp_HeadLink->mo_DataObjt;}
|
||||
TType& back (){return mp_TailLink->mo_DataObjt;}
|
||||
ZCLinkC* GetHeadLinkPtr () const{return mp_HeadLink;}
|
||||
ZCLinkC* GetHeadIterEasy () const{return mp_HeadLink;}
|
||||
IterEasyIDc GetHeadIterEasyID () const{return (IterEasyIDc)mp_HeadLink;}
|
||||
|
||||
ZCLinkC* GetTailLinkPtr () const{return mp_TailLink;}
|
||||
ZCLinkC* GetTailIterEasy () const{return mp_TailLink;}
|
||||
IterEasyIDc GetTailIterEasyID () const{return (IterEasyIDc)mp_TailLink;}
|
||||
|
||||
IterEasyIDc GetHeadIterEasyIDc() const{return (IterEasyIDc)mp_HeadLink;}
|
||||
IterEasyIDc GetTailIterEasyIDc() const{return (IterEasyIDc)mp_TailLink;}
|
||||
|
||||
|
||||
const ZCLink* GetHeadLinkPtr () const{return mp_HeadLink;}
|
||||
const ZCLink* GetHeadIterEasy () const{return mp_HeadLink;}
|
||||
const IterEasyID GetHeadIterEasyID() const{return (IterEasyID)mp_HeadLink;}
|
||||
void pop_back (TypeArg AR_Type){ return AddHead(AR_Type); }
|
||||
void push_back(TypeArg AR_Type){ return AddTail(AR_Type); }
|
||||
|
||||
const ZCLink* GetTailLinkPtr () const{return mp_TailLink;}
|
||||
const ZCLink* GetTailIterEasy () const{return mp_TailLink;}
|
||||
const IterEasyID GetTailIterEasyID() const{return (IterEasyID)mp_TailLink;}
|
||||
TypeData & GetHeadData() { return mp_HeadLink->mo_DataObjt; }
|
||||
TypeDataC& GetHeadData() const{ return mp_HeadLink->mo_DataObjt; }
|
||||
|
||||
const TType& front() const{return mp_HeadLink->mo_DataObjt;}
|
||||
const TType& back () const{return mp_TailLink->mo_DataObjt;}
|
||||
TypeData & GetTailData() { return mp_TailLink->mo_DataObjt ; }
|
||||
TypeDataC& GetTailData() const{ return mp_TailLink->mo_DataObjt ; }
|
||||
|
||||
|
||||
void pop_back(TypeArg AR_Type)
|
||||
{
|
||||
return AddHead(AR_Type);
|
||||
}/*
|
||||
void pop_back(TypeArg AR_Type)*/
|
||||
|
||||
void push_back(TypeArg AR_Type)
|
||||
{
|
||||
return AddTail(AR_Type);
|
||||
}/*
|
||||
void push_back(TypeArg AR_Type)*/
|
||||
|
||||
|
||||
TType& GetHeadData()
|
||||
{
|
||||
return mp_HeadLink->mo_DataObjt;
|
||||
}/*
|
||||
TType& GetHeadData()*/
|
||||
|
||||
const TType& GetHeadData() const
|
||||
{
|
||||
return mp_HeadLink->mo_DataObjt;
|
||||
}/*
|
||||
const TType& GetHeadData() const*/
|
||||
|
||||
|
||||
TType& GetTailData()
|
||||
{
|
||||
return mp_TailLink->mo_DataObjt ;
|
||||
}/*
|
||||
TType& GetTailData()*/
|
||||
|
||||
const TType& GetTailData() const
|
||||
{
|
||||
return mp_TailLink->mo_DataObjt ;
|
||||
}/*
|
||||
const TType& GetTailData() const*/
|
||||
|
||||
|
||||
TType& GetData(TTypSize AL_Index)
|
||||
{
|
||||
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
||||
}/*
|
||||
TType& GetData(TTypSize AL_Index)*/
|
||||
|
||||
TType GetData(TTypSize AL_Index) const
|
||||
{
|
||||
return GetLinkPtr(AL_Index)->mo_DataObjt;
|
||||
}/*
|
||||
TType GetData(TTypSize AL_Index) const*/
|
||||
TypeData & GetData(TypeSize AL_Index) { return GetLinkPtr(AL_Index)->mo_DataObjt; }
|
||||
TypeDataC& GetData(TypeSize AL_Index) const{ return GetLinkPtr(AL_Index)->mo_DataObjt; }
|
||||
|
||||
|
||||
void JoinHead(ZCLink* AP_Link)
|
||||
@ -1580,7 +1824,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
void DeleteHead()*/
|
||||
|
||||
void DeleteHead(TTypSize AL_DelSize)
|
||||
void DeleteHead(TypeSize AL_DelSize)
|
||||
{
|
||||
// AL_DelSize 개의 링크를 앞 부분에서 삭제
|
||||
|
||||
@ -1615,7 +1859,7 @@ namespace ZNsMain
|
||||
|
||||
ZCLink::MakeRing(mp_HeadLink, mp_TailLink);
|
||||
}/*
|
||||
void DeleteHead(TTypSize AL_DelSize)*/
|
||||
void DeleteHead(TypeSize AL_DelSize)*/
|
||||
|
||||
void DeleteTail()
|
||||
{
|
||||
@ -1650,18 +1894,18 @@ namespace ZNsMain
|
||||
}/*
|
||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink)*/
|
||||
|
||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)
|
||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)
|
||||
{
|
||||
GetCFreeHeap().RecvFreeIn
|
||||
( CutLink(AP_PrevLink, AP_CutLink, AL_CutPos) );
|
||||
}/*
|
||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TTypSize AL_CutPos)*/
|
||||
void Delete(ZCLink* AP_PrevLink, ZCLink* AP_CutLink, TypeSize AL_CutPos)*/
|
||||
|
||||
void Delete /*###################################*/
|
||||
(
|
||||
ZCLink* AP_CutHeadPrev,
|
||||
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TTypSize AL_CutTailPos
|
||||
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TypeSize AL_CutTailPos
|
||||
)
|
||||
/*###############################################*/
|
||||
{
|
||||
@ -1678,8 +1922,8 @@ namespace ZNsMain
|
||||
void Delete ///////////////////////////////////////
|
||||
(
|
||||
ZCLink* AP_CutHeadPrev,
|
||||
ZCLink* AP_CutHead, TTypSize AL_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TTypSize AL_CutTailPos
|
||||
ZCLink* AP_CutHead, TypeSize AL_CutHeadPos,
|
||||
ZCLink* AP_CutTail, TypeSize AL_CutTailPos
|
||||
)
|
||||
/////////////////////////////////////////////////*/
|
||||
|
||||
@ -1708,7 +1952,7 @@ namespace ZNsMain
|
||||
void clear(){DeleteAll();}
|
||||
|
||||
|
||||
TTypSize Find(const ZCLink* AP_pSearchLink, TTypSize AL_FirstFindIndex=1) const
|
||||
TypeSize Find(ZCLinkC* AP_pSearchLink, TypeSize AL_FirstFindIndex=1) const
|
||||
{
|
||||
const bool CB_DoStop = //////////////////////
|
||||
(
|
||||
@ -1719,7 +1963,7 @@ namespace ZNsMain
|
||||
if(CB_DoStop) {return 0;} ///////////////////
|
||||
|
||||
|
||||
TTypSize VL_FindIndex = AL_FirstFindIndex ;
|
||||
TypeSize VL_FindIndex = AL_FirstFindIndex ;
|
||||
ZCLink* VP_TempLink = const_cast
|
||||
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
|
||||
|
||||
@ -1736,9 +1980,9 @@ namespace ZNsMain
|
||||
}
|
||||
while(true);
|
||||
}/*
|
||||
TTypSize Find(ZCLink* AP_pSearchLink, TTypSize AL_FirstFindIndex=1) const*/
|
||||
TypeSize Find(ZCLink* AP_pSearchLink, TypeSize AL_FirstFindIndex=1) const*/
|
||||
|
||||
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1)
|
||||
TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)
|
||||
{
|
||||
const bool CB_DoStop = //////////////////////
|
||||
(
|
||||
@ -1749,7 +1993,7 @@ namespace ZNsMain
|
||||
if(CB_DoStop) return 0; /////////////////////
|
||||
|
||||
|
||||
TTypSize VL_FindIndex = AL_FirstFindIndex ;
|
||||
TypeSize VL_FindIndex = AL_FirstFindIndex ;
|
||||
ZCLink* VP_TempLink = const_cast
|
||||
<ZCLink*>(GetLinkPtr(AL_FirstFindIndex));
|
||||
|
||||
@ -1766,7 +2010,7 @@ namespace ZNsMain
|
||||
}
|
||||
while(true);
|
||||
}/*
|
||||
TTypSize Find(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1)*/
|
||||
TypeSize Find(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1)*/
|
||||
|
||||
|
||||
/*////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -1778,40 +2022,29 @@ namespace ZNsMain
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
TTypSize FindData(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) const
|
||||
TypeSize FindData(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1) const
|
||||
{
|
||||
return Find(AR_TypeArg, AL_FirstFindIndex);
|
||||
}/*
|
||||
TTypSize FindData(TypeArg AR_TypeArg, TTypSize AL_FirstFindIndex=1) const*/
|
||||
TypeSize FindData(TypeArg AR_TypeArg, TypeSize AL_FirstFindIndex=1) const*/
|
||||
|
||||
|
||||
ZCLink* GetLinkPtr(TTypSize AL_Index)
|
||||
{
|
||||
return mp_HeadLink->GetNextPtr(AL_Index-1);
|
||||
}/*
|
||||
ZCLink* GetLinkPtr(TTypSize AL_Index)*/
|
||||
ZCLink * GetLinkPtr(TypeSize AL_Index)
|
||||
{ return mp_HeadLink->GetNextPtr(AL_Index-1); }
|
||||
|
||||
ZCLinkC* GetLinkPtr(TypeSize AL_Index) const
|
||||
{ return mp_HeadLink->GetNextPtr(AL_Index-1); }
|
||||
|
||||
|
||||
const ZCLink* GetLinkPtr(TTypSize AL_Index) const
|
||||
{
|
||||
return mp_HeadLink->GetNextPtr(AL_Index-1);
|
||||
}/*
|
||||
const ZCLink* GetLinkPtr(TTypSize AL_Index) const*/
|
||||
ZCFreeHeap& GetCFreeHeap() const{return mo_FreeObjt;}
|
||||
|
||||
|
||||
ZCFreeHeap& GetCFreeHeap() const
|
||||
{
|
||||
return mo_FreeObjt;
|
||||
}/*
|
||||
ZCFreeHeap& GetCFreeHeap() const*/
|
||||
|
||||
|
||||
inline TTypSize GetSize() const
|
||||
inline TypeSize GetSize() const
|
||||
{ return ml_LinkSize; }
|
||||
inline TTypSize size () const
|
||||
inline TypeSize size () const
|
||||
{ return ml_LinkSize; }
|
||||
|
||||
inline TTypSize capacity() const
|
||||
inline TypeSize capacity() const
|
||||
{ return size()+mo_FreeObjt.size(); }
|
||||
|
||||
inline TypeSize GetFreeSize() const
|
||||
@ -2068,125 +2301,74 @@ namespace ZNsMain
|
||||
|
||||
-- 2011-06-07 20:25:00
|
||||
|
||||
GetDataInIter() 를 추가했다.
|
||||
|
||||
-- 2011-06-12 17:12:00
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////*/
|
||||
|
||||
void MoveNextIter(ZCLink*& APR_CLink)
|
||||
{
|
||||
APR_CLink=APR_CLink->GetNextPtr();
|
||||
}/*
|
||||
void MoveNextIter(ZCLink*& APR_CLink)*/
|
||||
|
||||
void MoveNextIter(ZCLink* & APR_CLink ) { APR_CLink=APR_CLink->GetNextPtr() ; }
|
||||
void MoveNextIter(iterator & ARR_iterator ) { ++ARR_iterator ; }
|
||||
void MoveNextIter(IterEasyID & APPI_IterEasyID)
|
||||
{
|
||||
MoveNextIter((ZCLink*&)APPI_IterEasyID);
|
||||
}/*
|
||||
void MoveNextIter(IterEasyID& APPI_IterEasyID)*/
|
||||
|
||||
void MoveNextIter(const ZCLink*& APR_CLink) const
|
||||
{
|
||||
APR_CLink=APR_CLink->GetNextPtr();
|
||||
}/*
|
||||
void MoveNextIter(const ZCLink*& APR_CLink) const*/
|
||||
|
||||
void MoveNextIter(const IterEasyID& APPI_IterEasyID) const
|
||||
{
|
||||
MoveNextIter((const ZCLink*&)APPI_IterEasyID);
|
||||
}/*
|
||||
void MoveNextIter(const IterEasyID& APPI_IterEasyID) const*/
|
||||
|
||||
|
||||
TType& GetDataInIter(ZCLink* AP_CLink)
|
||||
{
|
||||
return **AP_CLink;
|
||||
}/*
|
||||
TType& GetDataInIter(ZCLink* AP_CLink)*/
|
||||
|
||||
TType& GetDataInIter(IterEasyID APPI_IterEasyID)
|
||||
{
|
||||
return GetDataInIter((ZCLink*)APPI_IterEasyID);
|
||||
}/*
|
||||
TType& GetDataInIter(IterEasyID APPI_IterEasyID)*/
|
||||
|
||||
const TType& GetDataInIter(const ZCLink* AP_CLink) const
|
||||
{
|
||||
return **AP_CLink;
|
||||
}/*
|
||||
const TType& GetDataInIter(const ZCLink* AP_CLink) const*/
|
||||
|
||||
const TType& GetDataInIter(const IterEasyID APPI_IterEasyID) const
|
||||
{
|
||||
return GetDataInIter((const ZCLink*)APPI_IterEasyID);
|
||||
}/*
|
||||
const TType& GetDataInIter(const IterEasyID APPI_IterEasyID) const*/
|
||||
|
||||
|
||||
|
||||
{ MoveNextIter((ZCLink* &)APPI_IterEasyID); }
|
||||
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
ZCLink* ItHEasy() {return mp_HeadLink;}
|
||||
IterEasyID ItHID () {return (IterEasyID)mp_HeadLink;}
|
||||
void MoveNextIter(ZCLinkC* & APR_CLink ) const{ APR_CLink=APR_CLink->GetNextPtr() ; }
|
||||
void MoveNextIter(iteratorN & ARR_iterator ) const{ ++ARR_iterator ; }
|
||||
void MoveNextIter(IterEasyIDc& APPI_IterEasyID) const
|
||||
{ MoveNextIter((ZCLinkC*&)APPI_IterEasyID); }
|
||||
|
||||
|
||||
ZCLink * ItHEasy() {return mp_HeadLink;}
|
||||
ZCLink * ItTEasy() {return mp_TailLink;}
|
||||
IterEasyID ItHID () {return (IterEasyID )mp_HeadLink;}
|
||||
IterEasyID ItTID () {return (IterEasyID )mp_TailLink;}
|
||||
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
const ZCLink* ItHEasy() const{return mp_HeadLink;}
|
||||
const IterEasyID ItHID () const{return (IterEasyIDc)mp_HeadLink;}
|
||||
ZCLinkC* ItHEasy() const{return mp_HeadLink;}
|
||||
ZCLinkC* ItTEasy() const{return mp_TailLink;}
|
||||
IterEasyIDc ItHID () const{return (IterEasyIDc)mp_HeadLink;}
|
||||
IterEasyIDc ItTID () const{return (IterEasyIDc)mp_TailLink;}
|
||||
|
||||
const ZCLink* ItTEasy() const{return mp_TailLink;}
|
||||
const IterEasyID ItTID () const{return (IterEasyIDc)mp_TailLink;}
|
||||
IterEasyIDc ItHIDc () const{return (IterEasyIDc)mp_HeadLink;}
|
||||
IterEasyIDc ItTIDc () const{return (IterEasyIDc)mp_TailLink;}
|
||||
|
||||
|
||||
void ItNext(ZCLink*& APR_CLink)
|
||||
{
|
||||
MoveNextIter(APR_CLink);
|
||||
}/*
|
||||
void ItNext(ZCLink*& APR_CLink)*/
|
||||
|
||||
void ItNext(IterEasyID& APPI_IterEasyID)
|
||||
{
|
||||
MoveNextIter(APPI_IterEasyID);
|
||||
}/*
|
||||
void ItNext(IterEasyID& APPI_IterEasyID)*/
|
||||
|
||||
void ItNext(const ZCLink*& APR_CLink) const
|
||||
{
|
||||
MoveNextIter(APR_CLink);
|
||||
}/*
|
||||
void ItNext(const ZCLink*& APR_CLink) const*/
|
||||
|
||||
void ItNext(const IterEasyID& APPI_IterEasyID) const
|
||||
{
|
||||
MoveNextIter(APPI_IterEasyID);
|
||||
}/*
|
||||
void ItNext(const IterEasyID& APPI_IterEasyID) const*/
|
||||
void ItNext(ZCLink* & APR_CLink ) { MoveNextIter(APR_CLink) ; }
|
||||
void ItNext(IterEasyID & AH_IterEasyID) { MoveNextIter(AH_IterEasyID); }
|
||||
void ItNext(iterator & ARR_Iterator ) { ++ARR_Iterator ; }
|
||||
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
void ItNext(ZCLinkC* & APR_CLink ) const{ MoveNextIter(APR_CLink) ; }
|
||||
void ItNext(IterEasyIDc & AH_IterEasyID) const{ MoveNextIter(AH_IterEasyID); }
|
||||
void ItNext(iteratorN & ARR_Iterator ) const{ ++ARR_Iterator ; }
|
||||
|
||||
|
||||
TType& ItD(ZCLink* AP_CLink)
|
||||
{
|
||||
return **AP_CLink;
|
||||
}/*
|
||||
TType& ItD(ZCLink* AP_CLink)*/
|
||||
TypeData & ItD(ZCLink* AP_CLink ) { return **AP_CLink; }
|
||||
TypeData & ItD(IterEasyID AH_IterEasyID) { return **((ZCLink *)AH_IterEasyID); }
|
||||
TypeData & ItD(iterator & ARR_Iterator ) { return *ARR_Iterator; }
|
||||
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
TypeDataC& ItD(ZCLinkC* AP_CLink ) const{ return **AP_CLink; }
|
||||
TypeDataC& ItD(IterEasyIDc AH_IterEasyID) const{ return **((ZCLinkC*)AH_IterEasyID); }
|
||||
TypeDataC& ItD(iteratorN& ARR_Iterator ) const{ return *ARR_Iterator; }
|
||||
|
||||
TType& ItD(IterEasyID APPI_IterEasyID)
|
||||
{
|
||||
return ItD((ZCLink*)APPI_IterEasyID);
|
||||
}/*
|
||||
TType& ItD(IterEasyID APPI_IterEasyID)*/
|
||||
|
||||
const TType& ItD(const ZCLink* AP_CLink) const
|
||||
{
|
||||
return **AP_CLink;
|
||||
}/*
|
||||
const TType& ItD(const ZCLink* AP_CLink) const*/
|
||||
iterator begin () { return ZCNodePoint (*this); }
|
||||
iteratorN begin () const{ return ZNodekPointN(*this); }
|
||||
iterator end () { return ZCNodePoint ::MakeTailPoint(*this); }
|
||||
iteratorN end () const{ return ZNodekPointN::MakeTailPoint(*this); }
|
||||
|
||||
const TType& ItD(const IterEasyID APPI_IterEasyID) const
|
||||
{
|
||||
return ItD((const ZCLink*)APPI_IterEasyID);
|
||||
}/*
|
||||
const TType& ItD(const IterEasyID APPI_IterEasyID) const*/
|
||||
iteratorN cbegin() const{ return ZNodekPointN(*this); }
|
||||
iteratorN cend () const{ return ZNodekPointN::MakeTailPoint(*this); }
|
||||
|
||||
|
||||
ZCLink * HeadPtr() {return mp_HeadLink;}
|
||||
ZCLink * TailPtr() {return mp_TailLink;}
|
||||
ZCLinkC* HeadPtr() const{return mp_HeadLink;}
|
||||
ZCLinkC* TailPtr() const{return mp_TailLink;}
|
||||
|
||||
ZCLink * HeadPtr(TypeSize AI_Distance) {return &((*mp_HeadLink)+AI_Distance);}
|
||||
ZCLinkC* HeadPtr(TypeSize AI_Distance) const{return &((*mp_HeadLink)+AI_Distance);}
|
||||
|
||||
|
||||
ZCLink & HeadRef() {return *mp_HeadLink;}
|
||||
ZCLinkC& HeadRef() const{return *mp_HeadLink;}
|
||||
|
||||
ZCLink & HeadRef(TypeSize AI_Distance) {return (*mp_HeadLink)+AI_Distance;}
|
||||
ZCLinkC& HeadRef(TypeSize AI_Distance) const{return (*mp_HeadLink)+AI_Distance;}
|
||||
|
||||
public:
|
||||
};/*
|
||||
|
@ -307,10 +307,10 @@ namespace ZNsMain
|
||||
typedef const TTypCh* TypeCharCP ;
|
||||
typedef const TTypCh* TypeCPChar ;
|
||||
typedef TTypCh* TypePChar ;
|
||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
|
||||
typedef TTypeString ZCTypeString;
|
||||
typedef ZtCStringBase ZCStringBase;
|
||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
|
||||
typedef ZtCStringBase TypeThis ;
|
||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
typedef typename ZCTypeString::ZCSearchInfo ZCSearchInfo ;
|
||||
@ -320,20 +320,21 @@ namespace ZNsMain
|
||||
typedef typename ZCTypeString::TypeLong TypeLong ;
|
||||
typedef typename ZCTypeString::TypeLong TypeSize ;
|
||||
typedef typename ZCTypeString::TypeLong TypeLength ;
|
||||
public:
|
||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
typedef typename ZCTypeChars ::ZCChars ZCChars ;
|
||||
typedef typename ZCTypeChars ::ZCChars ZCCharView ; // for string_view in C++17
|
||||
public:
|
||||
|
||||
typedef const ZCChars ZCCharsC ;
|
||||
typedef const ZCChars ZCCharViewC ;
|
||||
public:
|
||||
|
||||
typedef TypeChar TypeData ;
|
||||
typedef ZCStringList TypeList ;
|
||||
public:
|
||||
typedef ZNsMain::ZtCCharType<ZtCStringBase> ZCCharType ;
|
||||
typedef typename ZCCharType::TypeInt TypeCharInt;
|
||||
|
||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
typedef ZNsMain::ZtCCharType<ZtCStringBase> traits_type; // for strl string/wstring
|
||||
typedef ZtCCharType<ZtCStringBase> ZCCharType ;
|
||||
typedef typename ZCCharType::TypeInt TypeCharInt;
|
||||
|
||||
typedef ZtCCharType<ZtCStringBase> traits_type; // for strl string/wstring
|
||||
typedef TypeSize size_type ; // for strl string/wstring
|
||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
|
||||
|
||||
|
@ -470,6 +470,7 @@ namespace ZNsMain
|
||||
■ class ZtCTreeData 예제 -- 2015-08-14 14:00
|
||||
|
||||
#include <iostream>
|
||||
#include "ZCppMain/ZtCStringEx.H"
|
||||
#include "ZCppMain/ZtCTreeData.H"
|
||||
|
||||
using namespace std ;
|
||||
|
@ -376,8 +376,59 @@ namespace ZNsMain
|
||||
static void ShowNode11_3(ZCLink11& AR_CLink, ZTypLong& ARRI_CallCnt)*/
|
||||
|
||||
|
||||
class ZCTypeView
|
||||
{
|
||||
public:
|
||||
|
||||
template<typename TTypChain> void OnMeetType()
|
||||
{
|
||||
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||
}
|
||||
template<typename TTypChain, typename TTypHelp> void OnMeetType(int& AR_CallNo)
|
||||
{
|
||||
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||
}
|
||||
};/*
|
||||
class ZCTypeView*/
|
||||
|
||||
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||
{
|
||||
typedef ZtCTypeChain
|
||||
<
|
||||
double , ZtCTypeChain<
|
||||
int , ZtCTypeChain<
|
||||
wchar_t, ZtCTypeChain<
|
||||
char ,
|
||||
|
||||
ZCEmpty > > >
|
||||
> ZCTypeChain; ZCTypeView VO_ZCTypeView;
|
||||
|
||||
int VI_CallNo = 0;
|
||||
|
||||
cout<<"*** tmpl chain size = "<<ZCTypeChain::Size()<<endl;
|
||||
|
||||
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
|
||||
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterHead(VO_ZCTypeView);
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
|
||||
|
||||
ZftIterTypeChainHead<ZCTypeChain, ZCTypeView&, int&>
|
||||
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||
cout<<"************************************"<<endl;
|
||||
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&, int&>
|
||||
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::
|
||||
IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::
|
||||
IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||
|
||||
|
||||
ZTypLong VI_CallCnt=0;
|
||||
|
||||
CStringBase VO_CStringBase;
|
||||
@ -657,34 +708,168 @@ namespace ZNsMain
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.SendRangeInAfter(1th~3th => 6th)"<<endl;
|
||||
VO_ZCBaseListEx10_2.SendRangeInAfter
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInAfter(1th~3th => 6th)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveRangeInAfter
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||
3,
|
||||
VO_ZCBaseListEx10_2.HeadOpt(5)
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.SendRangeInBefore(4th~6th => 1th)"<<endl;
|
||||
VO_ZCBaseListEx10_2.SendRangeInBefore
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeInBefore(4th~6th => 1th)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveRangeInBefore
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef(3),
|
||||
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||
3,
|
||||
VO_ZCBaseListEx10_2.HeadOpt( )
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# VO_ZCBaseListEx10_2 for_iter() show "<<endl;
|
||||
__for_iter(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
||||
cout<<endl<<"# VO_ZCBaseListEx10_2 for_it() show "<<endl;
|
||||
__for_it(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
||||
{
|
||||
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
||||
}
|
||||
|
||||
cout<<endl<<"# VO_ZCBaseListEx10_2 for_it_r() show "<<endl;
|
||||
__for_it_r(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
||||
{
|
||||
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
||||
}
|
||||
|
||||
cout<<endl<<"# VO_ZCBaseListEx10_2 for_itc() show "<<endl;
|
||||
__for_itc(ZCBaseListEx10, VO_ZCBaseListEx10_2, VO_Iter)
|
||||
{
|
||||
cout<<VO_Iter.GetPos()<<" : "<<*VO_Iter<<endl;
|
||||
}
|
||||
cout<<"*****************************************************"<<endl;
|
||||
|
||||
_FOR_ITER_EASY_START0_C (VO_ZCBaseListEx10_2, VH_NowIter, i)
|
||||
{
|
||||
cout<<"# list10_2 const: "<<(i+1)<<" "<<VO_ZCBaseListEx10_2.ItD(VH_NowIter)<<endl;
|
||||
}
|
||||
_FOR_ITER_EASY_CLOSE0_C (VO_ZCBaseListEx10_2, VH_NowIter, i)
|
||||
cout<<"*****************************************************"<<endl;
|
||||
|
||||
_FOR_ITER_EASY_START0_RC(VO_ZCBaseListEx10_2, VH_NowIter, i)
|
||||
{
|
||||
cout<<"# list10_2 rev const: "<<(i+1)<<" "<<VO_ZCBaseListEx10_2.ItD(VH_NowIter)<<endl;
|
||||
}
|
||||
_FOR_ITER_EASY_CLOSE0_RC(VO_ZCBaseListEx10_2, VH_NowIter, i)
|
||||
cout<<"*****************************************************"<<endl;
|
||||
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(1th, 3th after)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||
true
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(3th, 6th after)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||
true
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(6th, 1th before)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||
false
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(1th, 6th after)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||
true
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 3th after)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef(1),
|
||||
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||
true
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 3th before)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef(1),
|
||||
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||
false
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveLinkIn(2th, 1th before)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveLinkIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef(1),
|
||||
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||
false
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(1th, 3th, 6th after)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveRangeIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||
true
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(5th, 6th, 1th before)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveRangeIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef(4),
|
||||
VO_ZCBaseListEx10_2.HeadRef(5),
|
||||
VO_ZCBaseListEx10_2.HeadRef( ),
|
||||
false
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
|
||||
cout<<endl<<"# after VO_ZCBaseListEx10_2.MoveRangeIn(2th, 3th, 4th after)"<<endl;
|
||||
VO_ZCBaseListEx10_2.MoveRangeIn
|
||||
(
|
||||
VO_ZCBaseListEx10_2.HeadRef(1),
|
||||
VO_ZCBaseListEx10_2.HeadRef(2),
|
||||
VO_ZCBaseListEx10_2.HeadRef(3),
|
||||
true
|
||||
);
|
||||
cout<<"*****************************************************"<<endl;
|
||||
VO_ZCBaseListEx10_2.IterElemLink(&ShowNode10_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||
|
@ -71,12 +71,14 @@ namespace ZNsMain
|
||||
|
||||
typedef ZNsIFaceEx::ZtCLink
|
||||
<ZCEmpty, ZCLinkData> ZCLinkBase;
|
||||
typedef ZNsIFaceEx::ZtCLink
|
||||
<string , ZCEmpty > ZCLinkStr ;
|
||||
|
||||
public:
|
||||
typedef ZCLinkData ZCLinkCStr ;
|
||||
typedef ZtCLinkList<ZCLinkBase> ZCLinkStrList;
|
||||
typedef ZtCLinkList<ZCLinkBase> ZCLinkDataList;
|
||||
typedef ZtCLinkList<ZCLinkStr > ZCLinkStrList ;
|
||||
typedef typename
|
||||
ZCLinkStrList::ZCLinkOpt ZCStrLinkOpt ;
|
||||
ZCLinkDataList::ZCLinkOpt ZCStrLinkOpt ;
|
||||
public:
|
||||
|
||||
|
||||
@ -109,22 +111,27 @@ namespace ZNsMain
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||
{
|
||||
ZTypLong VI_CallCnt =0 ;
|
||||
ZCLinkStrList VO_ZCLinkStrLis1;
|
||||
ZCLinkStrList VO_ZCLinkStrLis2;
|
||||
ZCStrLinkOpt VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1);
|
||||
ZCLinkDataList VO_CDataList1;
|
||||
ZCLinkDataList VO_CDataList2;
|
||||
ZCLinkStrList VO_CStrLis20 ;
|
||||
ZCStrLinkOpt VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
|
||||
|
||||
cout<<"# VO_StrLinkOpt.has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||
cout<<"# VO_StrLinkOpt.bool() ="<<bool(VO_StrLinkOpt) <<endl;
|
||||
|
||||
VO_ZCLinkStrLis1.AddTail()().GetData()=string("123");
|
||||
VO_ZCLinkStrLis1.AddTail()().GetData()=string("ABC");
|
||||
VO_ZCLinkStrLis1.AddTail()().GetData()=string("xyz");
|
||||
VO_CDataList1.AddTail()().GetData()=string("123");
|
||||
VO_CDataList1.AddTail()().GetData()=string("ABC");
|
||||
VO_CDataList1.AddTail()().GetData()=string("xyz");
|
||||
|
||||
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z01");
|
||||
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z02");
|
||||
VO_ZCLinkStrLis2.AddTail()().GetData()=string("Z03");
|
||||
VO_CDataList2.AddTail()().GetData()=string("Z01");
|
||||
VO_CDataList2.AddTail()().GetData()=string("Z02");
|
||||
VO_CDataList2.AddTail()().GetData()=string("Z03");
|
||||
|
||||
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetObjOpt(1);
|
||||
VO_CStrLis20.AddTail()()=string("__1");
|
||||
VO_CStrLis20.AddTail()()=string("__2");
|
||||
VO_CStrLis20.AddTail()()=string("__3");
|
||||
|
||||
VO_StrLinkOpt = VO_CDataList1.GetObjOpt(1);
|
||||
|
||||
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||
cout<<"# VO_StrLinkOpt.GetObjOpt(1) : bool ()="<<bool(VO_StrLinkOpt) <<endl;
|
||||
@ -136,7 +143,7 @@ namespace ZNsMain
|
||||
}/*
|
||||
if(VO_StrLinkOpt.has_value())*/
|
||||
|
||||
VO_StrLinkOpt = VO_ZCLinkStrLis1.GetTailOpt();
|
||||
VO_StrLinkOpt = VO_CDataList1.GetTailOpt();
|
||||
|
||||
cout<<"# VO_StrLinkOpt.GetTailOpt() : has_value()="<<VO_StrLinkOpt.has_value()<<endl;
|
||||
cout<<"# VO_StrLinkOpt.GetTailOpt() : bool ()="<<bool(VO_StrLinkOpt) <<endl;
|
||||
@ -150,107 +157,175 @@ namespace ZNsMain
|
||||
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
VO_ZCLinkStrLis1.JoinHead(VO_ZCLinkStrLis2);
|
||||
VO_CDataList1.JoinHead(VO_CDataList2);
|
||||
|
||||
cout<<"# after VO_ZCLinkStrLis1.JoinHead(VO_ZCLinkStrLis2)"<<endl;
|
||||
cout<<"# after VO_CDataList1.JoinHead(VO_CDataList2)"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode1, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
VO_ZCLinkStrLis2 = VO_ZCLinkStrLis1 ;
|
||||
VO_CDataList2 = VO_CDataList1 ;
|
||||
|
||||
cout<<"# after VO_ZCLinkStrLis2 = VO_ZCLinkStrLis1"<<endl;
|
||||
cout<<"# after VO_CDataList2 = VO_CDataList1"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_ZCLinkStrLis1.IterElement(&AppendEach);
|
||||
VO_CDataList1.IterElement(&AppendEach);
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_ZCLinkStrLis1.SendRangeOutAfter
|
||||
VO_CDataList1.SendRangeOutAfter
|
||||
(
|
||||
VO_ZCLinkStrLis1.GetObjOpt(1).value()
|
||||
, VO_ZCLinkStrLis1.GetObjOpt(2).value()
|
||||
VO_CDataList1.GetObjOpt(1).value()
|
||||
, VO_CDataList1.GetObjOpt(2).value()
|
||||
, 2
|
||||
, VO_ZCLinkStrLis2
|
||||
, VO_ZCLinkStrLis2.GetObjOpt(1)
|
||||
, VO_CDataList2
|
||||
, VO_CDataList2.GetObjOpt(1)
|
||||
) ;
|
||||
cout<<"# after VO_ZCLinkStrLis1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
|
||||
cout<<"# after VO_CDataList1.SendRangeOutAfter(1th, 2th, 2, rhs, rhs's 1th)"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_ZCLinkStrLis2.SendRangeOutBefore
|
||||
VO_CDataList2.SendRangeOutBefore
|
||||
(
|
||||
VO_ZCLinkStrLis2.GetObjOpt(7).value()
|
||||
, VO_ZCLinkStrLis2.GetObjOpt(8).value()
|
||||
VO_CDataList2.GetObjOpt(7).value()
|
||||
, VO_CDataList2.GetObjOpt(8).value()
|
||||
, 2
|
||||
, VO_ZCLinkStrLis1
|
||||
, VO_ZCLinkStrLis1.GetObjOpt(1)
|
||||
, VO_CDataList1
|
||||
, VO_CDataList1.GetObjOpt(1)
|
||||
) ;
|
||||
cout<<"# after VO_ZCLinkStrLis2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
|
||||
cout<<"# after VO_CDataList2.SendRangeOutAfter(7th, 8th, 2, rhs, rhs's 1th)"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) );
|
||||
cout<<"# after VO_ZCLinkStrLis2.CopyThis( RR(VO_ZCLinkStrLis1) )"<<endl;
|
||||
VO_CDataList2.CopyThis( RR(VO_CDataList1) );
|
||||
cout<<"# after VO_CDataList2.CopyThis( RR(VO_CDataList1) )"<<endl;
|
||||
|
||||
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
|
||||
VO_ZCLinkStrLis2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList2.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_ZCLinkStrLis1.SwapLink
|
||||
(VO_ZCLinkStrLis1.HeadRef(), VO_ZCLinkStrLis1.HeadRef(1));
|
||||
cout<<"# after VO_ZCLinkStrLis1.SwapLink(1th, 2th)"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.SwapLink
|
||||
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(1));
|
||||
cout<<"# after VO_CDataList1.SwapLink(1th, 2th)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_ZCLinkStrLis1.SwapLink
|
||||
(VO_ZCLinkStrLis1.HeadRef(), VO_ZCLinkStrLis1.HeadRef(11));
|
||||
cout<<"# after VO_ZCLinkStrLis1.SwapLink(1th, 12th)"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.SwapLink
|
||||
(VO_CDataList1.HeadRef(), VO_CDataList1.HeadRef(11));
|
||||
cout<<"# after VO_CDataList1.SwapLink(1th, 12th)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_ZCLinkStrLis1.SwapLink
|
||||
(VO_ZCLinkStrLis1.HeadRef(11), VO_ZCLinkStrLis1.HeadRef(10));
|
||||
cout<<"# after VO_ZCLinkStrLis1.SwapLink(12th, 11th)"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.SwapLink
|
||||
(VO_CDataList1.HeadRef(11), VO_CDataList1.HeadRef(10));
|
||||
cout<<"# after VO_CDataList1.SwapLink(12th, 11th)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
VO_ZCLinkStrLis1.MoveLinkTail
|
||||
(VO_ZCLinkStrLis1.HeadRef());
|
||||
cout<<"# after VO_ZCLinkStrLis1.MoveLinkTail(1th)"<<endl;
|
||||
VO_ZCLinkStrLis1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
VO_CDataList1.MoveLinkTail
|
||||
(VO_CDataList1.HeadRef());
|
||||
cout<<"# after VO_CDataList1.MoveLinkTail(1th)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
_FOR_ITER_EASY_START0_C (VO_CDataList1, VH_NowIter, i)
|
||||
{
|
||||
cout<<"# list1 const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
|
||||
}
|
||||
_FOR_ITER_EASY_CLOSE0_C (VO_CDataList1, VH_NowIter, i)
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
_FOR_ITER_EASY_START0_RC(VO_CDataList1, VH_NowIter, i)
|
||||
{
|
||||
cout<<"# list1 rev const: "<<(i+1)<<" "<<VO_CDataList1.ItD(VH_NowIter).GetData()<<endl;
|
||||
}
|
||||
_FOR_ITER_EASY_CLOSE0_RC(VO_CDataList1, VH_NowIter, i)
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
__for_it(ZCLinkDataList, VO_CDataList1, VH_NowIter)
|
||||
{
|
||||
cout<<"# list1 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter).GetData()<<endl;
|
||||
}
|
||||
cout<<"***********************************************"<<endl;
|
||||
__for_it(ZCLinkStrList , VO_CStrLis20, VH_NowIter)
|
||||
{
|
||||
cout<<"# list20 __for_it : "<<VH_NowIter.GetPos()<<" "<<(*VH_NowIter)<<endl;
|
||||
}
|
||||
|
||||
_FOR_ITER_EASY_START0_C(VO_CStrLis20, VH_NowIter, i)
|
||||
{
|
||||
cout<<"# list20 const: "<<(i+1)<<" "<<VO_CStrLis20.ItD(VH_NowIter)<<endl;
|
||||
}
|
||||
_FOR_ITER_EASY_CLOSE0_C(VO_CStrLis20, VH_NowIter, i)
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_CDataList1.MoveRangeIn
|
||||
(
|
||||
VO_CDataList1.HeadRef( ),
|
||||
VO_CDataList1.HeadRef(1 ),
|
||||
VO_CDataList1.HeadRef(11),
|
||||
true
|
||||
);
|
||||
cout<<"# after VO_CDataList1.MoveRangeIn(1th, 2th, 12th, after)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_CDataList1.MoveRangeIn
|
||||
(
|
||||
VO_CDataList1.HeadRef(1 ),
|
||||
VO_CDataList1.HeadRef(11),
|
||||
VO_CDataList1.HeadRef( ),
|
||||
false
|
||||
);
|
||||
cout<<"# after VO_CDataList1.MoveRangeIn(2th, 12th, 1th, before)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
|
||||
VO_CDataList1.MoveRangeIn
|
||||
(
|
||||
VO_CDataList1.HeadRef( ),
|
||||
VO_CDataList1.HeadRef(1),
|
||||
VO_CDataList1.HeadRef(2),
|
||||
false
|
||||
);
|
||||
cout<<"# after VO_CDataList1.MoveRangeIn(1th, 2th, 3th, before)"<<endl;
|
||||
VO_CDataList1.IterElement(&ShowNode0, ZftMCP(VI_CallCnt=0));
|
||||
cout<<"***********************************************"<<endl;
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||
|
140
ZCppMainTest/ZtCLink_001.cpp
Normal file
140
ZCppMainTest/ZtCLink_001.cpp
Normal file
@ -0,0 +1,140 @@
|
||||
|
||||
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include "ZCppMain/ZtCLinkList.H"
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
namespace ZNsMain
|
||||
{
|
||||
|
||||
namespace ZNsExam
|
||||
{
|
||||
|
||||
class ZCLinkEx :
|
||||
public ZtCLink<ZCEmpty, ZCLinkEx>
|
||||
{
|
||||
};
|
||||
|
||||
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||
{
|
||||
typedef ZtCLink<ZCEmpty, ZCEmpty> ZCLink1;
|
||||
typedef ZtCLink<string , ZCEmpty> ZCLink2;
|
||||
typedef ZtCLink<ZCEmpty, string > ZCLink3;
|
||||
typedef ZtCLink<string , string > ZCLink4;
|
||||
typedef ZCLinkEx ZCLink5;
|
||||
|
||||
cout<<"# ZCLink1::TypeThis -> "<<typeid(ZCLink1::TypeThis ).name()<<endl;
|
||||
cout<<"# ZCLink1::TypeBase -> "<<typeid(ZCLink1::TypeBase ).name()<<endl;
|
||||
cout<<"# ZCLink1::TypeChild-> "<<typeid(ZCLink1::TypeChild).name()<<endl;
|
||||
cout<<"**********************************************************"<<endl;
|
||||
cout<<"# ZCLink2::TypeThis -> "<<typeid(ZCLink2::TypeThis ).name()<<endl;
|
||||
cout<<"# ZCLink2::TypeBase -> "<<typeid(ZCLink2::TypeBase ).name()<<endl;
|
||||
cout<<"# ZCLink2::TypeChild-> "<<typeid(ZCLink2::TypeChild).name()<<endl;
|
||||
cout<<"**********************************************************"<<endl;
|
||||
cout<<"# ZCLink3::TypeThis -> "<<typeid(ZCLink3::TypeThis ).name()<<endl;
|
||||
cout<<"# ZCLink3::TypeBase -> "<<typeid(ZCLink3::TypeBase ).name()<<endl;
|
||||
cout<<"# ZCLink3::TypeChild-> "<<typeid(ZCLink3::TypeChild).name()<<endl;
|
||||
cout<<"**********************************************************"<<endl;
|
||||
cout<<"# ZCLink4::TypeThis -> "<<typeid(ZCLink4::TypeThis ).name()<<endl;
|
||||
cout<<"# ZCLink4::TypeBase -> "<<typeid(ZCLink4::TypeBase ).name()<<endl;
|
||||
cout<<"# ZCLink4::TypeChild-> "<<typeid(ZCLink4::TypeChild).name()<<endl;
|
||||
cout<<"**********************************************************"<<endl;
|
||||
cout<<"# ZCLink5::TypeThis -> "<<typeid(ZCLink5::TypeThis ).name()<<endl;
|
||||
cout<<"# ZCLink5::TypeBase -> "<<typeid(ZCLink5::TypeBase ).name()<<endl;
|
||||
cout<<"# ZCLink5::TypeChild-> "<<typeid(ZCLink5::TypeChild).name()<<endl;
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||
|
||||
}/*
|
||||
namespace ZNsExam*/
|
||||
|
||||
}/*
|
||||
namespace ZNsMain*/
|
||||
|
||||
|
||||
int main(int AI_ArgCnt, char* APP_ArgVal[])
|
||||
{
|
||||
return ZNsMain::ZNsExam::Main(AI_ArgCnt, APP_ArgVal);
|
||||
}/*
|
||||
int main(int AI_ArgCnt, char* APP_ArgVal[])*/
|
||||
|
||||
|
||||
/*////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
■ cygwin 컴파일
|
||||
|
||||
// g++ -mno-cygwin -o ZtCLink_001.exe ZtCLink_001.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
|
||||
// g++ -mno-cygwin -o ZtCLink_001_D.exe ZtCLink_001.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
|
||||
|
||||
■ mingw 컴파일
|
||||
|
||||
g++.exe -o ZtCLink_001_mw.exe ZtCLink_001.cpp -I../
|
||||
g++.exe -o ZtCLink_001_mw_D.exe ZtCLink_001.cpp -I../ -D_DEBUG
|
||||
|
||||
./ZtCLink_001_mw.exe
|
||||
./ZtCLink_001_mw_D.exe
|
||||
|
||||
|
||||
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
|
||||
# date
|
||||
Sun Aug 24 10:47:09 KST 2025
|
||||
|
||||
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
|
||||
# g++ --version
|
||||
g++.exe (Rev2, Built by MSYS2 project) 13.2.0
|
||||
Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
■ Linux 컴파일
|
||||
|
||||
g++ -std=c++98 -o ZtCLink_001.exe ZtCLink_001.cpp -I../
|
||||
g++ -std=c++98 -o ZtCLink_001_D.exe ZtCLink_001.cpp -I../ -D_DEBUG
|
||||
|
||||
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
|
||||
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ date
|
||||
Sun Aug 24 00:05:51 DST 2025
|
||||
|
||||
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ cat /etc/os-release
|
||||
NAME="Ubuntu"
|
||||
VERSION="20.04.6 LTS (Focal Fossa)"
|
||||
ID=ubuntu
|
||||
ID_LIKE=debian
|
||||
PRETTY_NAME="Ubuntu 20.04.6 LTS"
|
||||
VERSION_ID="20.04"
|
||||
HOME_URL="https://www.ubuntu.com/"
|
||||
SUPPORT_URL="https://help.ubuntu.com/"
|
||||
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
|
||||
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
|
||||
VERSION_CODENAME=focal
|
||||
UBUNTU_CODENAME=focal
|
||||
|
||||
|
||||
[sauron@q381-2657 ZCppMainTest]$ cat /etc/centos-release
|
||||
CentOS Linux release 7.9.2009 (Core)
|
||||
|
||||
[sauron@q381-2657 ZCppMainTest]$ g++ --version
|
||||
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
|
||||
Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
■ 실행
|
||||
|
||||
./ZtCLink_001.exe
|
||||
./ZtCLink_001_D.exe
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////*/
|
@ -367,18 +367,66 @@ namespace ZNsMain
|
||||
cout<<"*****************************************************"<<endl;
|
||||
|
||||
|
||||
VO_ListOfStr11.MoveLinkIn
|
||||
(
|
||||
*VO_ListOfStr11.GetLinkPtr(1)
|
||||
, *VO_ListOfStr11.GetLinkPtr(7)
|
||||
, true
|
||||
);
|
||||
cout<<"# list11 MoveLinkIn(1th, 7th, after)"<<endl;
|
||||
cout<<"# list11 IterElemLink ################"<<endl;
|
||||
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
VO_ListOfStr11.MoveLinkIn
|
||||
(
|
||||
*VO_ListOfStr11.GetLinkPtr(5)
|
||||
, *VO_ListOfStr11.GetLinkPtr(1)
|
||||
, false
|
||||
);
|
||||
cout<<"# list11 MoveLinkIn(5th, 1th, before)"<<endl;
|
||||
cout<<"# list11 IterElemLink ################"<<endl;
|
||||
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
VO_ListOfStr11.MoveLinkIn
|
||||
(
|
||||
*VO_ListOfStr11.GetLinkPtr(6)
|
||||
, *VO_ListOfStr11.GetLinkPtr(7)
|
||||
, true
|
||||
);
|
||||
cout<<"# list11 MoveLinkIn(6th, 7th, after)"<<endl;
|
||||
cout<<"# list11 IterElemLink ################"<<endl;
|
||||
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
VO_ListOfStr11.MoveRangeIn
|
||||
(
|
||||
*VO_ListOfStr11.GetLinkPtr(1)
|
||||
, *VO_ListOfStr11.GetLinkPtr(2)
|
||||
, *VO_ListOfStr11.GetLinkPtr(7)
|
||||
, true
|
||||
);
|
||||
cout<<"# list11 MoveRangeIn(1th, 2th, 7th, after)"<<endl;
|
||||
cout<<"# list11 IterElemLink ################"<<endl;
|
||||
VO_ListOfStr11.IterElemLink(&ShowNode1_3, ZftMCP(VI_CallCnt=0));
|
||||
|
||||
|
||||
typedef CStringList1::iterator iterator1 ;
|
||||
typedef CStringList1::ZCLinkPointEx iteratorEx1;
|
||||
typedef CStringList1::ZCLinkPointC iteratorC1 ;
|
||||
//typedef CStringList1::ZCLinkPointEx iteratorEx1;
|
||||
typedef CStringList1::ZCNodePointN iteratorN1 ;
|
||||
|
||||
iterator1 VO_Iter1 = VO_ListOfStr11.end();
|
||||
iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
|
||||
iteratorC1 VO_IterC1(VO_Iter1);
|
||||
int VI_LoopCnt = 0;
|
||||
//iteratorEx1 VO_IterEx1 = VO_ListOfStr11.end();
|
||||
iteratorN1 VO_IterN1(VO_Iter1);
|
||||
|
||||
__for_iter(CStringList1, VO_ListOfStr11, VO_NowIter)
|
||||
__for_itc (CStringList1, VO_ListOfStr11, VO_NowIter)
|
||||
{
|
||||
cout<<"(by for_iter) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
|
||||
cout<<"(by for_itc ) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
|
||||
}
|
||||
__for_it_r(CStringList1, VO_ListOfStr11, VO_NowIter)
|
||||
{
|
||||
cout<<"(by for_it_r) "<<VO_NowIter.GetPos()<<" : "<<*VO_NowIter<<endl;
|
||||
}
|
||||
|
||||
|
||||
@ -416,8 +464,8 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
|
||||
|
||||
■ mingw 컴파일
|
||||
|
||||
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32
|
||||
g++.exe -o ZtCObjList_000_mw_D.exe ZtCObjList_000.cpp -I../ -lWs2_32 -D_DEBUG
|
||||
g++.exe -o ZtCObjList_000_mw.exe ZtCObjList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -Wno-unknown-pragmas
|
||||
g++.exe -o ZtCObjList_000_mw_D.exe ZtCObjList_000.cpp -I../ -lWs2_32 -Wall -Wno-unused-function -Wno-misleading-indentation -Wno-reorder -Wno-unknown-pragmas -D_DEBUG
|
||||
|
||||
./ZtCObjList_000_mw.exe
|
||||
./ZtCObjList_000_mw_D.exe
|
||||
|
317
ZCppMainTest/c++_test_006.cpp
Normal file
317
ZCppMainTest/c++_test_006.cpp
Normal file
@ -0,0 +1,317 @@
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include "ZCppMain/ZMainHead.H"
|
||||
|
||||
|
||||
using namespace std ;
|
||||
using namespace ZNsMain;
|
||||
|
||||
|
||||
namespace ZNsMain
|
||||
{
|
||||
|
||||
namespace ZNsExam
|
||||
{
|
||||
|
||||
template<typename TType> class ZtCTest
|
||||
{
|
||||
public:
|
||||
template<TType TTypeVar> class ZCTypeVar
|
||||
{
|
||||
public:
|
||||
TType MO_TypeVar;
|
||||
public:
|
||||
ZCTypeVar()
|
||||
{
|
||||
MO_TypeVar=TTypeVar;
|
||||
}
|
||||
public:
|
||||
};/*
|
||||
template<TType TTypeVar> class ZCTypeVar*/
|
||||
public:
|
||||
};/*
|
||||
template<typename TType> class ZtCTest*/
|
||||
|
||||
|
||||
template<typename TType, TType TTypeVar> class ZtCTest2
|
||||
{
|
||||
public:
|
||||
TType MO_TypeVar;
|
||||
public:
|
||||
ZtCTest2()
|
||||
{
|
||||
MO_TypeVar=TTypeVar;
|
||||
}
|
||||
public:
|
||||
};/*
|
||||
template<typename TType, TType TTypeVar> class ZtCTest2*/
|
||||
|
||||
|
||||
class ZCTypeView
|
||||
{
|
||||
public:
|
||||
|
||||
ZCTypeView()
|
||||
{
|
||||
cout<<"# ZCTypeView()"<<endl;
|
||||
}
|
||||
ZCTypeView(const ZCTypeView& rhs)
|
||||
{
|
||||
cout<<"ZCTypeView(const ZCTypeView& rhs)"<<endl;
|
||||
}
|
||||
~ZCTypeView()
|
||||
{
|
||||
cout<<"# ~ZCTypeView()"<<endl;
|
||||
}
|
||||
|
||||
template<typename TTypChain> void OnMeetType()
|
||||
{
|
||||
cout<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||
}
|
||||
template<typename TTypChain, typename TTypHelp> void OnMeetType(TTypHelp& AR_CallNo)
|
||||
{
|
||||
cout<<"* Call No="<<++AR_CallNo<<" : "<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||
}
|
||||
|
||||
template<typename TTypChain> void OnMeetTypeVal()
|
||||
{
|
||||
cout<<"* Val="<<TTypChain::GetData()<<", ETypeNo="<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||
}
|
||||
template<typename TTypChain, typename TTypHelp> void OnMeetTypeVal(TTypHelp& AR_CallNo)
|
||||
{
|
||||
cout<<"* Call No="<<++AR_CallNo<<" : Val="<<TTypChain::GetData()<<", ETypeNo="<<TTypChain::ZETypeNo<<" : "<<typeid(typename TTypChain::TypeData).name()<<endl;
|
||||
}
|
||||
|
||||
template<typename TObjtChain> void OnMeetData(TObjtChain& AR_NowChain)
|
||||
{
|
||||
cout<<"* Type No="<<AR_NowChain.GetNo()<<" : "<<AR_NowChain.GetData()<<endl;
|
||||
}
|
||||
template<typename TObjtChain> void OnMeetData(TObjtChain& AR_NowChain, int& ARI_CallNo)
|
||||
{
|
||||
cout<<"# CallNo="<<++ARI_CallNo<<" : Type No="<<AR_NowChain.GetNo()<<" : "<<AR_NowChain.GetData()<<endl;
|
||||
}
|
||||
};/*
|
||||
class ZCTypeView*/
|
||||
|
||||
|
||||
template<typename TType> class ZCShowType
|
||||
{
|
||||
public:
|
||||
ZCShowType()
|
||||
{
|
||||
cout<<"# TType typename="<<typeid(TType).name()<<endl;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)
|
||||
{
|
||||
ZCShowType<int> myShowType1;
|
||||
ZCShowType<double> myShowType2;
|
||||
ZCShowType<ZTypLLong> myShowType3;
|
||||
//ZCShowType<"abc"> myShowType4; //error
|
||||
|
||||
const int CI_Var1=10;
|
||||
const int CI_Var2=20;
|
||||
const int CI_Var3=30;
|
||||
|
||||
ZtCTest<int>::ZCTypeVar<CI_Var1> myintvar1 ;
|
||||
ZtCTest2<int, CI_Var2> myintvar2 ;
|
||||
ZtCTest2<ZTypLLong, CI_Var3> myintvar3 ;
|
||||
|
||||
cout<<myintvar1.MO_TypeVar<<endl;
|
||||
cout<<myintvar2.MO_TypeVar<<endl;
|
||||
cout<<myintvar3.MO_TypeVar<<endl;
|
||||
|
||||
|
||||
typedef ZtCMiniValChain
|
||||
<
|
||||
char , 'a' , ZtCMiniValChain<
|
||||
char , 'b' , ZtCMiniValChain<
|
||||
char , 'c' , ZtCMiniValChain<
|
||||
//double, 10.2 , ZtCMiniValChain< // error in linux
|
||||
//string, string("123") , ZtCMiniValChain< // error
|
||||
long , 10 , ZtCMiniValChain<
|
||||
int , 19 ,
|
||||
ZCEmpty > > > >
|
||||
> ZCMiniValChain; ZCTypeView VO_ZCTypeView; int VI_CallNo = 0;
|
||||
|
||||
cout<<"# ZCMiniValChain.size()="<<ZCMiniValChain::size()<<endl;
|
||||
|
||||
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterHead(VO_ZCTypeView);
|
||||
cout<<"************************************"<<endl;
|
||||
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterTail(VO_ZCTypeView);
|
||||
cout<<"************************************"<<endl;
|
||||
|
||||
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo = 0));
|
||||
cout<<"************************************"<<endl;
|
||||
ZCMiniValChain::ZtCIterChain<ZCTypeView&>::IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo = 0));
|
||||
cout<<"************************************"<<endl;
|
||||
|
||||
|
||||
typedef ZtCTypeChain
|
||||
<
|
||||
double , ZtCTypeChain<
|
||||
int , ZtCTypeChain<
|
||||
wchar_t, ZtCTypeChain<
|
||||
char ,
|
||||
|
||||
ZCEmpty > > >
|
||||
> ZCTypeChain;
|
||||
|
||||
cout<<"tmpl chain size = "<<ZCTypeChain::Size()<<endl;
|
||||
|
||||
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&>(VO_ZCTypeView);
|
||||
|
||||
cout<<"@** call start : ZCTypeView(rhs) **********@"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterHead(VO_ZCTypeView);
|
||||
cout<<"@******************************************@"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView>::IterTail(VO_ZCTypeView);
|
||||
cout<<"@*** call close : ZCTypeView(rhs) *********@"<<endl;
|
||||
|
||||
ZftIterTypeChainHead<ZCTypeChain, ZCTypeView&, int&>
|
||||
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||
cout<<"************************************"<<endl;
|
||||
ZftIterTypeChainTail<ZCTypeChain, ZCTypeView&, int&>
|
||||
( VO_ZCTypeView, (VI_CallNo = 0) );
|
||||
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView&>::
|
||||
IterHead(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||
cout<<"************************************"<<endl;
|
||||
ZCTypeChain::ZtCIterChain<ZCTypeView&>::
|
||||
IterTail(VO_ZCTypeView, ZftMCP(VI_CallNo=0));
|
||||
cout<<"************************************"<<endl;
|
||||
|
||||
|
||||
typedef ZtCDataRing<std::string> ZCDataRing;
|
||||
|
||||
ZCDataRing VO_CDataRing = string("123");
|
||||
|
||||
VO_CDataRing.AddTail(string("ABC"));
|
||||
VO_CDataRing.AddTail(string("XYZ"));
|
||||
|
||||
cout<<"# VO_CDataRing Size = "<<VO_CDataRing.size()<<endl;
|
||||
cout<<"# VO_CDataRing Data = "<<VO_CDataRing <<endl;
|
||||
cout<<"************************************"<<endl;
|
||||
cout<<"# VO_CDataRing IterThis = "<<endl;
|
||||
VO_CDataRing.IterThis(&ZftPrint<string>); cout<<endl;
|
||||
cout<<"************************************"<<endl;
|
||||
cout<<"# VO_CDataRing IterHead = "<<endl;
|
||||
VO_CDataRing.IterHead(&ZftPrint<string>); cout<<endl;
|
||||
cout<<"************************************"<<endl;
|
||||
cout<<"# VO_CDataRing IterTail = "<<endl;
|
||||
VO_CDataRing.IterTail(&ZftPrint<string>); cout<<endl;
|
||||
cout<<"************************************"<<endl;
|
||||
cout<<"# VO_CDataRing IterThisRev = "<<endl;
|
||||
VO_CDataRing.IterThisRev(&ZftPrint<string>); cout<<endl;
|
||||
cout<<"************************************"<<endl;
|
||||
cout<<"# VO_CDataRing IterThisRev(HelpType char(',')) = "<<endl;
|
||||
VO_CDataRing.IterThisRev(&ZftPrint<string, char>, char(',')); cout<<endl;
|
||||
cout<<"************************************"<<endl;
|
||||
cout<<"# VO_CDataRing IterTail(HelpType char(',')) = "<<endl;
|
||||
VO_CDataRing.IterTail (&ZftPrint<string, char>, char(',')); cout<<endl;
|
||||
cout<<"************************************"<<endl;
|
||||
|
||||
|
||||
typedef ZtCDataRing<ZCTypeView> ZCViewRing;
|
||||
|
||||
ZCViewRing VO_ZCViewRing;
|
||||
|
||||
VO_ZCViewRing.AddTail();
|
||||
VO_ZCViewRing.AddTail();
|
||||
VO_ZCViewRing.DeleteAll();
|
||||
cout<<"************************************"<<endl;
|
||||
|
||||
return 0;
|
||||
}/*
|
||||
static int Main(int AI_ArgCnt=0, char* APP_ArgVal[]=0)*/
|
||||
|
||||
}/*
|
||||
namespace ZNsExam*/
|
||||
|
||||
}/*
|
||||
namespace ZNsMain*/
|
||||
|
||||
|
||||
int main(int AI_ArgCnt, char* APP_ArgVal[])
|
||||
{
|
||||
return ZNsMain::ZNsExam::Main(AI_ArgCnt, APP_ArgVal);
|
||||
}/*
|
||||
int main(int AI_ArgCnt, char* APP_ArgVal[])*/
|
||||
|
||||
|
||||
/*////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
■ cygwin 컴파일
|
||||
|
||||
// g++ -mno-cygwin -o c++_test_006.exe c++_test_006.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
|
||||
// g++ -mno-cygwin -o c++_test_006_D.exe c++_test_006.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
|
||||
|
||||
■ mingw 컴파일
|
||||
|
||||
g++.exe -o c++_test_006_mw.exe c++_test_006.cpp -I../
|
||||
g++.exe -o c++_test_006_mw_D.exe c++_test_006.cpp -I../ -D_DEBUG
|
||||
|
||||
./c++_test_006_mw.exe
|
||||
./c++_test_006_mw_D.exe
|
||||
|
||||
|
||||
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
|
||||
# date
|
||||
Sun Aug 24 10:47:09 KST 2025
|
||||
|
||||
Administrator@q381-2673 UCRT64 /e/my_CPP/ZCpp/ZCppMainTest
|
||||
# g++ --version
|
||||
g++.exe (Rev2, Built by MSYS2 project) 13.2.0
|
||||
Copyright (C) 2023 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
■ Linux 컴파일
|
||||
|
||||
g++ -std=c++98 -o c++_test_006.exe c++_test_006.cpp -I../
|
||||
g++ -std=c++98 -o c++_test_006_D.exe c++_test_006.cpp -I../ -D_DEBUG
|
||||
|
||||
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
|
||||
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ date
|
||||
Sun Aug 24 00:05:51 DST 2025
|
||||
|
||||
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ cat /etc/os-release
|
||||
NAME="Ubuntu"
|
||||
VERSION="20.04.6 LTS (Focal Fossa)"
|
||||
ID=ubuntu
|
||||
ID_LIKE=debian
|
||||
PRETTY_NAME="Ubuntu 20.04.6 LTS"
|
||||
VERSION_ID="20.04"
|
||||
HOME_URL="https://www.ubuntu.com/"
|
||||
SUPPORT_URL="https://help.ubuntu.com/"
|
||||
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
|
||||
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
|
||||
VERSION_CODENAME=focal
|
||||
UBUNTU_CODENAME=focal
|
||||
|
||||
|
||||
[sauron@q381-2657 ZCppMainTest]$ cat /etc/centos-release
|
||||
CentOS Linux release 7.9.2009 (Core)
|
||||
|
||||
[sauron@q381-2657 ZCppMainTest]$ g++ --version
|
||||
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
|
||||
Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
■ 실행
|
||||
|
||||
./c++_test_006.exe
|
||||
./c++_test_006_D.exe
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////*/
|
Reference in New Issue
Block a user