Cocoaはさっぱり!!! Version.3
■ このスレッドは過去ログ倉庫に格納されています
0556名称未設定
04/02/25 07:54ID:j2afweZ8inline IMP _METHOD(id __obj, SEL __sel){return [__obj methodForSelector: __sel];}
// _imp = [_obj methodForSelector: _sel]; <<< g++ Bus error
template <typename _Tr = id, typename _Ta1 = id, typename _Ta2 = id, typename _Ta3 = id>
class ImpMethod
{
public:
id_obj;
SEL_sel;
IMP_imp;
ImpMethod<_Tr, _Ta1, _Ta2, _Ta3>(id __obj, SEL __sel) :
_obj(__obj), _sel(__sel), _imp(_METHOD(_obj, _sel)){}
_Tr operator *()
{return ((_Tr (*)(id, SEL, ...))*_imp)(_obj, _sel);}
_Tr impFunc(_Ta1 __arg1)
{return ((_Tr (*)(id, SEL, ...))*_imp)(_obj, _sel, __arg1);}
_Tr impFunc(_Ta1 __arg1, _Ta2 __arg2)
{return ((_Tr (*)(id, SEL, ...))*_imp)(_obj, _sel, __arg1, __arg2);}
_Tr impFunc(_Ta1 __arg1, _Ta2 __arg2, _Ta3 __arg3)
{return ((_Tr (*)(id, SEL, ...))*_imp)(_obj, _sel, __arg1, __arg2, __arg3);}
};
■ このスレッドは過去ログ倉庫に格納されています