#include #include "ZCppMain/ZtCStringEx.H" using namespace std ; using namespace ZNsMain ; namespace ZNsMain { namespace ZNsExam { template class ZtCExamCList { public: class CHelpObj { public: CHelpObj() { cout<<"* CHelpObj()"< CStringBase ; typedef const CStringBase CStringBaseC; /* 아래 자료형에 대해, CStringBase::Fetch() 호출 여부 실험. ZtCBaseList ZtCBaseList */ typedef ZtCBaseList CStringList1 ; typedef ZtCBaseList CStringList2 ; public: class ZCBaseListEx10 : public ZtCBaseList < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP > { public : typedef ZtCBaseList /////////////////////////////////////////////////////// < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP > ZCBaseList; /////////////////////////////////////////////////////////////// friend class ZtCBaseList ////////////////////////////////////////////////// < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP >; /////////////////////////////////////////////////////////////////////////// typedef typename ZCBaseList::ZCLink ZCLink; private: _VT_ ZCLink* SendFreeOut() { cout<<"** ZCBaseListEx10 : SendFreeOut()"<ZCBaseList::NewLink(); }/* _VT_ ZCLink* SendFreeOut()*/ _VT_ ZCLink* SendFreeOut(CStringBase& AO_ArgData) { cout<<"** ZCBaseListEx10 : SendFreeOut(TypeArg)"<ZCBaseList::NewLink(AO_ArgData); }/* _VT_ ZCLink* SendFreeOut(CStringBase& AO_ArgData)*/ _VT_ void SendFreeOut (ZTypLong AL_NeedCnt, ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink) { cout<<"** ZCBaseListEx10 : SendFreeOut("<ZCBaseList::NewLink(AL_NeedCnt, APR_HeadLink, APR_TailLink); } _VT_ void SendFreeOutCopy /*///////////////////////*/ ( ZCLink* AP_LinkOrgin, ZTypLong AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ) ///////////////////////////////////////////////////// { cout<<"** ZCBaseListEx10 : SendFreeOut(ZCLink*, "<ZCBaseList::NewLinkCopy(AP_LinkOrgin, AL_FarNum, APR_HeadCopy, APR_TailCopy); } _VT_ void RecvFreeIn(ZCLink* AP_DelLink) { cout<<"** ZCBaseListEx10 : RecvFreeIn(AP_DelLink)"<ZCBaseList::DelLink(AP_DelLink); }/* _VT_ void RecvFreeIn(ZCLink* AP_DelLink)*/ _VT_ void RecvFreeIn ////////////////////////////////// ( ZTypLong AL_CutCnt , ZCLink* AP_CutHead, ZCLink* AP_CutTail ) /////////////////////////////////////////////////////// { cout<<"** ZCBaseListEx10 : RecvFreeIn("<ZCBaseList::DelLink(AL_CutCnt, AP_CutHead, AP_CutTail); } _VT_ void ChangeCapacity(ZTypLong AI_AddCut) { cout<<"** ZCBaseListEx10 : ChangeCapacity("< , ZNsType::ZtCTypeCRTP > { public : typedef ZtCBaseList /////////////////////////////////////////////////////// < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP > ZCBaseList; /////////////////////////////////////////////////////////////// friend class ZtCBaseList ////////////////////////////////////////////////// < CStringBase, CStringBase&, ZCAllocator, ZTypLong , ZNsMain::ZtCMoveObj , ZNsType::ZtCTypeCRTP >; /////////////////////////////////////////////////////////////////////////// typedef typename ZCBaseList::ZCLink ZCLink; private: _VT_ ZCLink* SendFreeOut() { cout<<"** ZCBaseListEx11 : SendFreeOut()"<ZCBaseList::NewLink(); }/* _VT_ ZCLink* SendFreeOut()*/ _VT_ ZCLink* SendFreeOut(CStringBase& AO_ArgData) { cout<<"** ZCBaseListEx11 : SendFreeOut(CStringBase&)"<ZCBaseList::NewLink(AO_ArgData); }/* _VT_ ZCLink* SendFreeOut(CStringBase& AO_ArgData)*/ _VT_ void SendFreeOut (ZTypLong AL_NeedCnt, ZCLink*& APR_HeadLink, ZCLink*& APR_TailLink) { cout<<"** ZCBaseListEx11 : SendFreeOut("<ZCBaseList::NewLink(AL_NeedCnt, APR_HeadLink, APR_TailLink); } _VT_ void SendFreeOutCopy /*///////////////////////*/ ( ZCLink* AP_LinkOrgin, ZTypLong AL_FarNum , ZCLink*& APR_HeadCopy, ZCLink*& APR_TailCopy ) ///////////////////////////////////////////////////// { cout<<"** ZCBaseListEx11 : SendFreeOut(ZCLink*, "<ZCBaseList::NewLinkCopy(AP_LinkOrgin, AL_FarNum, APR_HeadCopy, APR_TailCopy); } _VT_ void RecvFreeIn(ZCLink* AP_DelLink) { cout<<"** ZCBaseListEx11 : RecvFreeIn(AP_DelLink)"<ZCBaseList::DelLink(AP_DelLink); }/* _VT_ void RecvFreeIn(ZCLink* AP_DelLink)*/ _VT_ void RecvFreeIn ////////////////////////////////// ( ZTypLong AL_CutCnt , ZCLink* AP_CutHead, ZCLink* AP_CutTail ) /////////////////////////////////////////////////////// { cout<<"** ZCBaseListEx11: RecvFreeIn("<ZCBaseList::DelLink(AL_CutCnt, AP_CutHead, AP_CutTail); } _VT_ void ChangeCapacity(ZTypLong AI_AddCut) { cout<<"** ZCBaseListEx11 : ChangeCapacity("< CIntList; CHelpObj VO_CHelpObj; CIntList VO_CIntList; VO_CIntList.AddTail(10); VO_CIntList.AddTail(20); VO_CIntList.AddTail(30); VO_CIntList.AddTail(40); cout< class ZtCExamCList*/ }/* namespace ZNsExam*/ }/* namespace ZNsMain*/ int main(int AI_ArgCnt, char* APP_ArgVal[]) { return ZNsMain::ZNsExam:: ZtCExamCList<>::Main(AI_ArgCnt, APP_ArgVal); }/* int main(int AI_ArgCnt, char* APP_ArgVal[])*/ /*//////////////////////////////////////////////////////////////////////////////////////// ■ cygwin 컴파일 // g++ -mno-cygwin -o ZtCBaseList_000.exe ZtCBaseList_000.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 // g++ -mno-cygwin -o ZtCBaseList_000_D.exe ZtCBaseList_000.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG ■ mingw 컴파일 g++.exe -o ZtCBaseList_000_mw.exe ZtCBaseList_000.cpp -I../ -lWs2_32 g++.exe -o ZtCBaseList_000_mw_D.exe ZtCBaseList_000.cpp -I../ -lWs2_32 -D_DEBUG ./ZtCBaseList_000_mw.exe ./ZtCBaseList_000_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 ZtCBaseList_000.exe ZtCBaseList_000.cpp -I../ g++ -std=c++98 -o ZtCBaseList_000_D.exe ZtCBaseList_000.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. ■ 실행 ./ZtCBaseList_000.exe ./ZtCBaseList_000_D.exe ////////////////////////////////////////////////////////////////////////////////////////*/