edit ZtCArray.H

This commit is contained in:
2021-03-08 20:27:36 +09:00
parent 69bcf4846b
commit 8b2d370652
3 changed files with 84 additions and 10 deletions

View File

@ -1526,12 +1526,18 @@ namespace ZNsMain
/////////////////////////////////////////////////////////////////////////////*/
typedef ZNsMain::
ZtCTypeData<TTypeHelp> ZCTypeHelp;
ZCLink* VP_LoopLink=mp_HeadLink;
__for0(int, i, ml_Size)
{
ZtCTypeData<TFunctor>::
GetObjRef(AO_Functor)(VP_LoopLink->mo_Type, AO_TypeHelp);
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
(
VP_LoopLink->mo_Type, ZCTypeHelp::GetObjRef(AO_TypeHelp)
);
/* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, operator()
연산자를 가진 object 포인터일 때도 사용할 수 있게 되었다. */
@ -1544,6 +1550,55 @@ namespace ZNsMain
void IterElement(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */
template<typename TFunctor, typename TTypeHelp1, typename TTypeHelp2>
void IterElement(TFunctor AO_Functor,
TTypeHelp1 AO_TypeHelp1, TTypeHelp2 AO_TypeHelp2)
{
/*/////////////////////////////////////////////////////////////////////////////
■ TTypeHelp 가 class 일 경우, 크기가 커서 참조로 넘어가야 한다면,
IterElement<myFunctor, myClass&>(myFunctor_obj, myClass_Obj);
의 형태로 호출할 게 아니라, ZtCObjectPtr<> 을 사용하여,
myClass myClass_Obj; ZtCObjectPtr<myClass> myCObjPtr(myClass_Obj);
IterElement(myFunctor_obj, ZtCObjectPtr<myClass>(myClass_Obj));
형태를 사용하면 좋을 것 같다. -- 2014-06-16 23:11:00
/////////////////////////////////////////////////////////////////////////////*/
typedef ZNsMain::ZtCTypeData<TTypeHelp1> ZCTypeHelp1;
typedef ZNsMain::ZtCTypeData<TTypeHelp2> ZCTypeHelp2;
ZCLink* VP_LoopLink=mp_HeadLink;
__for0(int, i, ml_Size)
{
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
(
VP_LoopLink->mo_Type
, ZCTypeHelp1::GetObjRef(AO_TypeHelp1)
, ZCTypeHelp2::GetObjRef(AO_TypeHelp2)
);
/* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, operator()
연산자를 가진 object 포인터일 때도 사용할 수 있게 되었다. */
VP_LoopLink = VP_LoopLink->mp_NextLink ;
}/*
__for0(int, i, ml_Size)*/
}/*
template<typename TFunctor, typename TTypeHelp1, typename TTypeHelp2>
void IterElement(TFunctor AO_Functor,
TTypeHelp1 AO_TypeHelp1, TTypeHelp2 AO_TypeHelp2)*/
template<typename TFunctor, typename TTypeHelp>
void IterElemRef(TFunctor AO_Functor, TTypeHelp& AR_TypeHelp)
{