commit 2025-10-08 23:48 ZCppMain/ZCStringStd.H -> ZCppMain/ZtCStringStd.H

This commit is contained in:
2025-10-08 23:48:31 +09:00
parent 83e5de35bb
commit 0d5e74665b
2 changed files with 91 additions and 69 deletions

View File

@ -321,7 +321,7 @@ namespace ZNsMain
typedef typename ZCTypeString::TypeLong TypeLength ; typedef typename ZCTypeString::TypeLong TypeLength ;
public: public:
typedef typename ZCTypeChars ::ZCChars ZCChars ; typedef typename ZCTypeChars ::ZCChars ZCChars ;
typedef typename ZCTypeChars ::ZCChars ZCCharView ; // // for string_view in C++17 typedef typename ZCTypeChars ::ZCChars ZCCharView ; // for string_view in C++17
public: public:
typedef const ZCChars ZCCharsC ; typedef const ZCChars ZCCharsC ;
typedef const ZCChars ZCCharViewC; typedef const ZCChars ZCCharViewC;
@ -332,7 +332,7 @@ namespace ZNsMain
typedef ZCStringList TypeList ; typedef ZCStringList TypeList ;
public: public:
typedef ZNsMain::ZtCCharType<ZtCStringBase> ZCCharType ; typedef ZNsMain::ZtCCharType<ZtCStringBase> ZCCharType ;
typedef ZNsMain::ZtCCharType<ZtCStringBase> traits_type; typedef ZNsMain::ZtCCharType<ZtCStringBase> traits_type; // for strl string
typedef typename ZCCharType::TypeInt TypeCharInt; typedef typename ZCCharType::TypeInt TypeCharInt;
public: public:
@ -765,7 +765,7 @@ namespace ZNsMain
}/* }/*
ZtCStringBase()*/ ZtCStringBase()*/
ZtCStringBase(TypeCharC* APC_Data) explicit ZtCStringBase(TypeCharC* APC_Data)
{ {
ml_AllLen=0; ml_AllLen=0;
ml_UseLen=0; ml_UseLen=0;
@ -779,7 +779,7 @@ namespace ZNsMain
); );
///////////////////////////////////////// /////////////////////////////////////////
}/* }/*
ZtCStringBase(TypeCharC* APC_Data)*/ explicit ZtCStringBase(TypeCharC* APC_Data)*/
ZtCStringBase(TypeCharC* APC_Data, TypeLength AL_Length) ZtCStringBase(TypeCharC* APC_Data, TypeLength AL_Length)
{ {

View File

@ -1,7 +1,7 @@
 
#ifndef __ZCPPMAIIN_ZCSTRINGSTD_H__ #ifndef __ZCPPMAIIN_ZTCSTRINGSTD_H__
#define __ZCPPMAIIN_ZCSTRINGSTD_H__ #define __ZCPPMAIIN_ZTCSTRINGSTD_H__
#include<string> #include<string>
@ -11,41 +11,56 @@
namespace ZNsMain namespace ZNsMain
{ {
class ZCStringStd : public std::string template
< typename TTypString = std::string >
class ZtCStringStd : public TTypString
{ {
public: public:
typedef ZNsChars::ZNsType::ZtCTypeChars<char> ZCTypeChars; typedef typename TTypString::traits_type::char_type TypeChar ;
typedef ZNsChars::ZtCMainChars<ZCTypeChars> ZCMainChars; typedef typename TTypString::traits_type::int_type TypeCharInt ;
public: public:
typedef char TypeChar ; typedef ZNsChars::ZNsType::
typedef char* TypePChar ; ZtCTypeChars <TypeChar > ZCTypeChars ;
typedef const char* TypeCPChar; typedef ZNsChars::
typedef std::string TypeBase ; ZtCMainChars<ZCTypeChars> ZCMainChars ;
typedef std::string TypeStrStd; public:
typedef ZTypLength TypeLength; typedef TypeChar* TypePChar ;
typedef const TypeChar* TypeCPChar ;
typedef TTypString TypeBase ;
typedef TTypString TypeStrStd ;
typedef ZTypLength TypeLength ;
typedef ZTypLength TypeSize ; typedef ZTypLength TypeSize ;
public: public:
typedef ZtCChars<TypePChar> ZCChars ;
typedef ZtCChars<TypePChar> ZCCharView ;
public:
ZCStringStd(): TypeStrStd(){} ZtCStringStd(): TypeStrStd(){}
ZCStringStd(const ZCStringStd& rhs): TypeStrStd(rhs){} ZtCStringStd(const ZtCStringStd& rhs): TypeStrStd(rhs){}
ZCStringStd(const char* APC_Origin, TypeLength AL_Length): TypeStrStd(APC_Origin, AL_Length){} ZtCStringStd(TypeCPChar APC_Origin, TypeLength AL_Length):
ZCStringStd(const char* APC_Origin): TypeStrStd(APC_Origin){} TypeStrStd(APC_Origin, AL_Length){}
ZCStringStd& operator=(const ZCStringStd& rhs) ZtCStringStd(const ZCCharView& AR_View):
TypeStrStd(AR_View.data(), AR_View.size()){}
explicit ZtCStringStd(TypeCPChar APC_Origin):
TypeStrStd(APC_Origin){}
ZtCStringStd& operator=(const ZtCStringStd& rhs)
{ {
if(this==&rhs){ return *this; } if(this==&rhs){ return *this; }
this->TypeStrStd::operator=(rhs); return *this; this->TypeStrStd::operator=(rhs); return *this;
}/* }/*
ZCStringStd& operator=(const ZCStringStd& rhs)*/ ZtCStringStd& operator=(const ZtCStringStd& rhs)*/
ZCStringStd& operator=(const TypeBase& rhs) ZtCStringStd& operator=(const TypeBase& rhs)
{ {
if(this->data()==rhs.data()){ return *this; } if(this->data()==rhs.data()){ return *this; }
this->TypeStrStd::operator=(rhs); return *this; this->TypeStrStd::operator=(rhs); return *this;
}/* }/*
ZCStringStd& operator=(const TypeBase& rhs)*/ ZtCStringStd& operator=(const TypeBase& rhs)*/
template<typename TPosList> void FindPosToList ///////////// template<typename TPosList> void FindPosToList /////////////
@ -61,7 +76,7 @@ namespace ZNsMain
if(this->size() <= AL_Offset) return ; if(this->size() <= AL_Offset) return ;
if(this->size() < 1 ) return ; if(this->size() < 1 ) return ;
const char* VPC_OriginStart = this->data(); const TypeChar* VPC_OriginStart = this->data();
TypeLength VL_OriginLen = this->size(); TypeLength VL_OriginLen = this->size();
TypeLength VL_FindPos = -1 ; TypeLength VL_FindPos = -1 ;
TypeLength VL_OffsetNow = AL_Offset ; TypeLength VL_OffsetNow = AL_Offset ;
@ -91,10 +106,10 @@ namespace ZNsMain
public : public :
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
private: private:
template<typename TPosList> ZCStringStd& ReplaceByPosList /////////////////// template<typename TPosList> ZtCStringStd& ReplaceByPosList ///////////////////
( (
TPosList& AR_CPosList , TPosList& AR_CPosList ,
TypeCPChar APC_Replace , TypeCPChar APC_Replace ,
@ -120,7 +135,7 @@ namespace ZNsMain
TypeLength VL_NeedSize = VL_ThisSize + TypeLength VL_NeedSize = VL_ThisSize +
(AL_Replace-AL_Searched) * VL_PosListSize ; (AL_Replace-AL_Searched) * VL_PosListSize ;
TypePChar VPC_ThisStart = const_cast<char*>(this->data()) ; TypePChar VPC_ThisStart = const_cast<TypeChar*>(this->data()) ;
IterEasyID VH_IterEasyID = AR_CPosList.ItHID(); IterEasyID VH_IterEasyID = AR_CPosList.ItHID();
TypeLength VL_SearchedPos= 0 ; TypeLength VL_SearchedPos= 0 ;
TypeLength VL_SearchedPre= 0 ; // VL_SearchedPos 의 이전 값 TypeLength VL_SearchedPre= 0 ; // VL_SearchedPos 의 이전 값
@ -156,7 +171,7 @@ namespace ZNsMain
::memmove /*::::::::::::::::::::::::::::::::::::::*/ ::memmove /*::::::::::::::::::::::::::::::::::::::*/
( (
VPC_DestStart, VPC_MoveStart, VL_MemMoveSize VPC_DestStart, VPC_MoveStart, VL_MemMoveSize*sizeof(TypeChar)
); );
/*::::::::::::::::::::::::::::::::::::::::::::::::*/ /*::::::::::::::::::::::::::::::::::::::::::::::::*/
}/* }/*
@ -179,7 +194,7 @@ namespace ZNsMain
( (
VPC_ThisStart + VL_DestStart, VPC_ThisStart + VL_DestStart,
VPC_ThisStart + VL_MoveStart, VPC_ThisStart + VL_MoveStart,
VL_ThisSize - VL_MoveStart (VL_ThisSize - VL_MoveStart)*sizeof(TypeChar)
); );
/*::::::::::::::::::::::::::::::::::::::::*/ /*::::::::::::::::::::::::::::::::::::::::*/
}/* }/*
@ -209,7 +224,7 @@ namespace ZNsMain
::memmove /*::::::::::::::::::::::::::::::::::::::::*/ ::memmove /*::::::::::::::::::::::::::::::::::::::::*/
( (
VPC_DestStart, VPC_MoveStart, VL_MemMoveSize VPC_DestStart, VPC_MoveStart, VL_MemMoveSize*sizeof(TypeChar)
); );
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/ /*::::::::::::::::::::::::::::::::::::::::::::::::::*/
}/* }/*
@ -219,7 +234,7 @@ namespace ZNsMain
::memcpy /*::::::::::::::::::::::::::::::::::::::::*/ ::memcpy /*::::::::::::::::::::::::::::::::::::::::*/
( (
VPC_DestStart, APC_Replace, AL_Replace VPC_DestStart, APC_Replace, AL_Replace*sizeof(TypeChar)
); );
/*::::::::::::::::::::::::::::::::::::::::::::::::::*/ /*::::::::::::::::::::::::::::::::::::::::::::::::::*/
@ -232,7 +247,7 @@ namespace ZNsMain
return *this; return *this;
}/* }/*
template<typename TPosList> ZCStringStd& ReplaceByPosList /////////////////// template<typename TPosList> ZtCStringStd& ReplaceByPosList ///////////////////
( (
TPosList& AR_CPosList , TPosList& AR_CPosList ,
TypeCPChar APC_Replace , TypeCPChar APC_Replace ,
@ -247,7 +262,7 @@ namespace ZNsMain
public : public :
ZCStringStd& Replace /*////////////////////////////////////////////////////*/ ZtCStringStd& Replace /*////////////////////////////////////////////////////*/
( (
TypeCPChar APC_Search, TypeCPChar APC_Replace, TypeCPChar APC_Search, TypeCPChar APC_Replace,
TypeLength AL_Search , TypeLength AL_Replace , TypeLength AL_Offset=0 TypeLength AL_Search , TypeLength AL_Replace , TypeLength AL_Offset=0
@ -270,7 +285,7 @@ namespace ZNsMain
); );
/*::::::::::::::::::::::::::::::::::::::::::::::::::::*/ /*::::::::::::::::::::::::::::::::::::::::::::::::::::*/
}/* }/*
ZCStringStd& Replace //////////////////////////////////////////////////////// ZtCStringStd& Replace ////////////////////////////////////////////////////////
( (
TypeCPChar APC_Search, TypeCPChar APC_Replace, TypeCPChar APC_Search, TypeCPChar APC_Replace,
TypeLength AL_Search , TypeLength AL_Replace , TypeLength AL_Offset=0 TypeLength AL_Search , TypeLength AL_Replace , TypeLength AL_Offset=0
@ -278,7 +293,7 @@ namespace ZNsMain
###########################################################################*/ ###########################################################################*/
ZCStringStd& Replace /*////////////////////////////////////////////////////*/ ZtCStringStd& Replace /*////////////////////////////////////////////////////*/
( (
TypeCPChar APC_Search, TypeCPChar APC_Replace, TypeLength AL_Offset=0 TypeCPChar APC_Search, TypeCPChar APC_Replace, TypeLength AL_Offset=0
) )
@ -286,49 +301,49 @@ namespace ZNsMain
{ {
return Replace(APC_Search, APC_Replace, ZftLength(APC_Search), ZftLength(APC_Replace), AL_Offset); return Replace(APC_Search, APC_Replace, ZftLength(APC_Search), ZftLength(APC_Replace), AL_Offset);
}/* }/*
ZCStringStd& Replace //////////////////////////////////////////////////////// ZtCStringStd& Replace ////////////////////////////////////////////////////////
( (
TypeCPChar APC_Search, TypeCPChar APC_Replace, TypeLength AL_Offset=0 TypeCPChar APC_Search, TypeCPChar APC_Replace, TypeLength AL_Offset=0
) )
###########################################################################*/ ###########################################################################*/
ZCStringStd& operator()(ZCStringStd& rhs) ZtCStringStd& operator()(ZtCStringStd& rhs)
{ {
if(this==&rhs) return *this; this->append(rhs); return *this; if(this==&rhs) return *this; this->append(rhs); return *this;
}/* }/*
ZCStringStd& operator()(ZCStringStd& rhs)*/ ZtCStringStd& operator()(ZtCStringStd& rhs)*/
ZCStringStd& operator()(TypeCPChar APC_Data, TypeLength AI_Length) ZtCStringStd& operator()(TypeCPChar APC_Data, TypeLength AI_Length)
{ {
if(this->data()==APC_Data) return *this; if(this->data()==APC_Data) return *this;
this->append(APC_Data, AI_Length); return *this; this->append(APC_Data, AI_Length); return *this;
}/* }/*
ZCStringStd& operator()(TypeCPChar APC_Data, TypeLength AI_Length)*/ ZtCStringStd& operator()(TypeCPChar APC_Data, TypeLength AI_Length)*/
ZCStringStd& operator()(TypeCPChar APC_Data) ZtCStringStd& operator()(TypeCPChar APC_Data)
{ {
if(this->data()==APC_Data) return *this; if(this->data()==APC_Data) return *this;
this->append(APC_Data); return *this; this->append(APC_Data); return *this;
}/* }/*
ZCStringStd& operator()(TypeCPChar APC_Data)*/ ZtCStringStd& operator()(TypeCPChar APC_Data)*/
ZCStringStd& operator()(TypeLength AI_Repeat, char AC_Data) ZtCStringStd& operator()(TypeLength AI_Repeat, TypeChar AC_Data)
{ {
this->append(AI_Repeat, AC_Data); return *this; this->append(AI_Repeat, AC_Data); return *this;
}/* }/*
ZCStringStd& operator()(char AC_Data, TypeLength AI_Repeat)*/ ZtCStringStd& operator()(TypeChar AC_Data, TypeLength AI_Repeat)*/
ZCStringStd& operator()(char AC_Data, TypeLength AI_Repeat=1) ZtCStringStd& operator()(TypeChar AC_Data, TypeLength AI_Repeat=1)
{ {
this->append(AI_Repeat, AC_Data); return *this; this->append(AI_Repeat, AC_Data); return *this;
}/* }/*
ZCStringStd& operator()(char AC_Data, TypeLength AI_Repeat=1)*/ ZtCStringStd& operator()(TypeChar AC_Data, TypeLength AI_Repeat=1)*/
ZCStringStd& operator()(int AI_IntParam) ZtCStringStd& operator()(int AI_IntParam)
{ {
const int CI_BuffSize=21; char VCA_BuffParam[CI_BuffSize]; const int CI_BuffSize=21; char VCA_BuffParam[CI_BuffSize];
@ -336,9 +351,9 @@ namespace ZNsMain
return (*this)(VCA_BuffParam, VI_ResultSize); return (*this)(VCA_BuffParam, VI_ResultSize);
}/* }/*
ZCStringStd& operator()(int AI_IntParam)*/ ZtCStringStd& operator()(int AI_IntParam)*/
ZCStringStd& operator()(ZTypUInt AUI_UIntParam) ZtCStringStd& operator()(ZTypUInt AUI_UIntParam)
{ {
const int CI_BuffSize=21; char VCA_BuffParam[CI_BuffSize]; const int CI_BuffSize=21; char VCA_BuffParam[CI_BuffSize];
@ -346,9 +361,9 @@ namespace ZNsMain
return (*this)(VCA_BuffParam, VI_ResultSize); return (*this)(VCA_BuffParam, VI_ResultSize);
}/* }/*
ZCStringStd& operator()(ZTypUInt AUI_UIntParam)*/ ZtCStringStd& operator()(ZTypUInt AUI_UIntParam)*/
ZCStringStd& operator()(long AL_LongParam) ZtCStringStd& operator()(long AL_LongParam)
{ {
const int CI_BuffSize=31; char VCA_BuffParam[CI_BuffSize]; const int CI_BuffSize=31; char VCA_BuffParam[CI_BuffSize];
@ -356,9 +371,9 @@ namespace ZNsMain
return (*this)(VCA_BuffParam, VI_ResultSize); return (*this)(VCA_BuffParam, VI_ResultSize);
}/* }/*
ZCStringStd& operator()(long AL_LongParam)*/ ZtCStringStd& operator()(long AL_LongParam)*/
ZCStringStd& operator()(ZTypULong AUL_ULongParam) ZtCStringStd& operator()(ZTypULong AUL_ULongParam)
{ {
const int CI_BuffSize=31; char VCA_BuffParam[CI_BuffSize]; const int CI_BuffSize=31; char VCA_BuffParam[CI_BuffSize];
@ -366,9 +381,9 @@ namespace ZNsMain
return (*this)(VCA_BuffParam, VI_ResultSize); return (*this)(VCA_BuffParam, VI_ResultSize);
}/* }/*
ZCStringStd& operator()(ZTypULong AUL_ULongParam)*/ ZtCStringStd& operator()(ZTypULong AUL_ULongParam)*/
ZCStringStd& operator()(ZTypLLong ALL_LLongParam) ZtCStringStd& operator()(ZTypLLong ALL_LLongParam)
{ {
const int CI_BuffSize=41; char VCA_BuffParam[CI_BuffSize]; const int CI_BuffSize=41; char VCA_BuffParam[CI_BuffSize];
@ -380,9 +395,9 @@ namespace ZNsMain
return (*this)(VCA_BuffParam, VI_ResultSize); return (*this)(VCA_BuffParam, VI_ResultSize);
}/* }/*
ZCStringStd& operator()(ZTypLLong ALL_LLongParam)*/ ZtCStringStd& operator()(ZTypLLong ALL_LLongParam)*/
ZCStringStd& operator()(ZTypULLong AULL_LLongParam) ZtCStringStd& operator()(ZTypULLong AULL_LLongParam)
{ {
const int CI_BuffSize=41; char VCA_BuffParam[CI_BuffSize]; const int CI_BuffSize=41; char VCA_BuffParam[CI_BuffSize];
@ -394,9 +409,9 @@ namespace ZNsMain
return (*this)(VCA_BuffParam, VI_ResultSize); return (*this)(VCA_BuffParam, VI_ResultSize);
}/* }/*
ZCStringStd& operator()(ZTypULLong AULL_LLongParam)*/ ZtCStringStd& operator()(ZTypULLong AULL_LLongParam)*/
ZCStringStd& operator()(double AD_DoubleParam) ZtCStringStd& operator()(double AD_DoubleParam)
{ {
const int CI_BuffSize=51 ; const int CI_BuffSize=51 ;
char VCA_BuffParam[CI_BuffSize]; char VCA_BuffParam[CI_BuffSize];
@ -409,21 +424,28 @@ namespace ZNsMain
return (*this)(VCA_BuffParam); return (*this)(VCA_BuffParam);
}/* }/*
ZCStringStd& operator()(double AD_DoubleParam)*/ ZtCStringStd& operator()(double AD_DoubleParam)*/
public: public:
};/* };/*
class ZCStringStd : public std::string*/ template
< typename TTypString = std::string >
class ZtCStringStd : public TTypString */
template<typename TTypString> std::ostream& operator<<
std::ostream& operator << (std::ostream& AR_COStream, const ZtCStringStd<TTypString>& AR_DataCStr)
(std::ostream& AR_COStream, const ZCStringStd& AR_CStringBase)
{ {
AR_COStream<<static_cast<const std::string&>(AR_CStringBase); return AR_COStream; typedef typename ZtCStringStd
<TTypString>::TypeBase TypeBaseCStr ;
AR_COStream<< static_cast
<const TypeBaseCStr&>(AR_DataCStr);
return AR_COStream; ///////////////////////////
}/* }/*
std::ostream& operator << template<typename TTypString> std::ostream& operator<<
(std::ostream& AR_COStream, const ZCStringStd& AR_CStringBase)*/ (std::ostream& AR_COStream, const ZtCStringStd& AR_DataCStr)*/
}/* }/*
@ -431,4 +453,4 @@ namespace ZNsMain*/
#endif //__ZCPPMAIIN_ZCSTRINGSTD_H__ #endif //__ZCPPMAIIN_ZTCSTRINGSTD_H__