edit ZtCArray.H
This commit is contained in:
@ -444,23 +444,35 @@ namespace ZNsMain
|
|||||||
|
|
||||||
의 형태로 호출할 게 아니라, ZNsMain::ZtCObjectPtr<> 을 사용하여,
|
의 형태로 호출할 게 아니라, ZNsMain::ZtCObjectPtr<> 을 사용하여,
|
||||||
|
|
||||||
myClass myClass_Obj; ZNsMain::ZtCObjectPtr<myClass> myCObjPtr(myClass_Obj);
|
myClass myClass_Obj;
|
||||||
|
|
||||||
|
ZNsMain::ZtCObjectPtr<myClass> myCObjPtr(myClass_Obj);
|
||||||
|
|
||||||
나
|
나
|
||||||
|
|
||||||
IterElement(myFunctor_obj, ZNsMain::ZtCObjectPtr<myClass>(myClass_Obj));
|
IterElement(myFunctor_obj,
|
||||||
|
ZNsMain::ZtCObjectPtr<myClass>(myClass_Obj));
|
||||||
|
|
||||||
형태를 사용하면 좋을 것 같다. -- 2014-06-16 23:11:00
|
형태를 사용하면 좋을 것 같다. -- 2014-06-16 23:11:00
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////*/
|
/////////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
|
||||||
|
typedef ZNsMain::
|
||||||
|
ZtCTypeData<TTypeHelp> ZCTypeHelp;
|
||||||
|
|
||||||
|
|
||||||
Type* VP_TypeArr = mp_TypeArr;
|
Type* VP_TypeArr = mp_TypeArr;
|
||||||
|
|
||||||
__for0(TypeSize, i, ml_UseSize)
|
__for0(TypeSize, i, ml_UseSize)
|
||||||
{
|
{
|
||||||
ZNsMain::ZtCTypeData<TFunctor>::
|
ZNsMain::ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
||||||
GetObjRef(AO_Functor)(*VP_TypeArr, AO_TypeHelp); ++VP_TypeArr;
|
(
|
||||||
|
*VP_TypeArr, ZCTypeHelp::GetObjRef(AO_TypeHelp)
|
||||||
|
);
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
++VP_TypeArr;
|
||||||
}/*
|
}/*
|
||||||
__for0(TypeSize, i, ml_UseSize)*/
|
__for0(TypeSize, i, ml_UseSize)*/
|
||||||
}/*
|
}/*
|
||||||
@ -490,13 +502,20 @@ namespace ZNsMain
|
|||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////*/
|
/////////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
typedef ZNsMain::ZtCTypeData<TTypeHelp1> ZCTypeHelp1;
|
||||||
|
typedef ZNsMain::ZtCTypeData<TTypeHelp2> ZCTypeHelp2;
|
||||||
|
|
||||||
|
|
||||||
Type* VP_TypeArr = mp_TypeArr;
|
Type* VP_TypeArr = mp_TypeArr;
|
||||||
|
|
||||||
__for0(TypeSize, i, ml_UseSize)
|
__for0(TypeSize, i, ml_UseSize)
|
||||||
{
|
{
|
||||||
ZNsMain::ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
ZNsMain::ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
||||||
(*VP_TypeArr, AO_TypeHelp1, AO_TypeHelp2);
|
(
|
||||||
|
*VP_TypeArr
|
||||||
|
, ZCTypeHelp1::GetObjRef(AO_TypeHelp1)
|
||||||
|
, ZCTypeHelp2::GetObjRef(AO_TypeHelp2)
|
||||||
|
);
|
||||||
|
|
||||||
++VP_TypeArr; ///////////////////////////////////////
|
++VP_TypeArr; ///////////////////////////////////////
|
||||||
}/*
|
}/*
|
||||||
|
@ -1526,12 +1526,18 @@ namespace ZNsMain
|
|||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////*/
|
/////////////////////////////////////////////////////////////////////////////*/
|
||||||
|
|
||||||
|
typedef ZNsMain::
|
||||||
|
ZtCTypeData<TTypeHelp> ZCTypeHelp;
|
||||||
|
|
||||||
|
|
||||||
ZCLink* VP_LoopLink=mp_HeadLink;
|
ZCLink* VP_LoopLink=mp_HeadLink;
|
||||||
|
|
||||||
__for0(int, i, ml_Size)
|
__for0(int, i, ml_Size)
|
||||||
{
|
{
|
||||||
ZtCTypeData<TFunctor>::
|
ZtCTypeData<TFunctor>::GetObjRef(AO_Functor)
|
||||||
GetObjRef(AO_Functor)(VP_LoopLink->mo_Type, AO_TypeHelp);
|
(
|
||||||
|
VP_LoopLink->mo_Type, ZCTypeHelp::GetObjRef(AO_TypeHelp)
|
||||||
|
);
|
||||||
|
|
||||||
/* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, operator()
|
/* 위 코드로 인해서, AO_Functor 이 함수일 때 뿐이 아니라, operator()
|
||||||
연산자를 가진 object 포인터일 때도 사용할 수 있게 되었다. */
|
연산자를 가진 object 포인터일 때도 사용할 수 있게 되었다. */
|
||||||
@ -1544,6 +1550,55 @@ namespace ZNsMain
|
|||||||
void IterElement(TFunctor AO_Functor, TTypeHelp AO_TypeHelp) */
|
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>
|
template<typename TFunctor, typename TTypeHelp>
|
||||||
void IterElemRef(TFunctor AO_Functor, TTypeHelp& AR_TypeHelp)
|
void IterElemRef(TFunctor AO_Functor, TTypeHelp& AR_TypeHelp)
|
||||||
{
|
{
|
||||||
|
@ -77,11 +77,11 @@ int main(int ArgiCnt, char** AppArgu)
|
|||||||
_FFC_(ZCShowData2)
|
_FFC_(ZCShowData2)
|
||||||
|
|
||||||
_FFS_(ZCShowData3)
|
_FFS_(ZCShowData3)
|
||||||
(ZTypInt AiInt, ZCTuple* AP_CTuple)
|
(ZTypInt AiInt, ZCTuple& AR_CTuple)
|
||||||
{
|
{
|
||||||
cout<<"# Elem2 : "<< AiInt << ", nth=" << AP_CTuple->_1++ << endl;
|
cout<<"# Elem2 : "<< AiInt << ", nth=" << AR_CTuple._1++ << endl;
|
||||||
}/*
|
}/*
|
||||||
(ZTypInt AiInt, ZCTuple* AP_CTuple)*/
|
(ZTypInt AiInt, ZCTuple* AR_CTuple)*/
|
||||||
_FFC_(ZCShowData3)
|
_FFC_(ZCShowData3)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user