commit 2025-09-11 12:36 edit codes for ZtCInit<> in ZCppMain/ZtSimList.H etc

This commit is contained in:
2025-09-11 12:37:05 +09:00
parent 5ced8624e6
commit 0c07b0e497
5 changed files with 222 additions and 145 deletions

View File

@ -3628,13 +3628,36 @@ namespace ZNsMain
ZftCopyChars(TTypeCh* ApcDest, TTypeSize AL_DestSize, const TTypeCh* ApcSource) */
/*######################################################################################
■ ZtCInit<>, ZCInit 은 주로 자유 기억 공간을 구현하는 자료 구조에서 사용한다.
1) 자유 기억 공간에서 나오는 data 에 대하여 OnInit() 를 호출한다.
2) 자유 기억 공간으로 가 는 data 에 대하여 OnFini() 를 호출한다.
그런데 2) 는 자료 구조에 따라 호출하지 않을 수도 있다. 다수의 원소가 자유 기억 공간으
로 들어갈 때, 일일이 그 모든 원소에 대해 Onfini() 를 호출하는 것은 낭비일 수 있는 것이
다.
-- 2025-09-11 11:00
■ 주로 container 인 typename TType2 을 인수로 받아, container 와의 활용도롤 높이고 있다.
-- 2025-09-11 11:03
######################################################################################*/
template<typename TType> class ZtCInit
{
public:
void operator()(TType& AR_TypeArg){}
enum{EUseInit=0};
enum{EUseFini=0};
public:
void OnInit(TType& AR_TypeArg){}
void OnFini(TType& AR_TypeArg){}
template<typename TType2>
static void OnInit(TType& AR_TypeArg, TType2& AR_TypeArg2){}
template<typename TType2>
static void OnFini(TType& AR_TypeArg, TType2& AR_TypeArg2){}
public:
};/*
template<typename TType> class ZtCInit*/
@ -3643,12 +3666,13 @@ namespace ZNsMain
class ZCInit
{
public:
template<typename TType> void operator()(TType& AR_TypeArg){}
template<typename TType> void OnInit (TType& AR_TypeArg){}
template<typename TType> void OnFini (TType& AR_TypeArg){}
void OnInit(){}
void OnFini(){}
enum{EUseInit=0};
enum{EUseFini=0};
public:
template<typename TType, typename TType2>
static void OnInit(TType& AR_TypeArg, TType2& AR_TypeArg2){}
template<typename TType, typename TType2>
static void OnFini(TType& AR_TypeArg, TType2& AR_TypeArg2){}
public:
};/*
class ZCInit*/