Pytanie dotyczy tematu.Czy można określić w czasie wykonywania wskaźnik wskazuje na klasę C++ lub na klasę Objective-C?
Chcę napisać jakąś uniwersalną funkcję szablonu dla bezpiecznych obiektów Usuwanie i zastanawiasz się, czy to możliwe, aby używać mniej więcej tak:
template< class T > void SafeDelete(T*& pVal)
{
if(objc_is_cpp_object(pVal)){
delete pVal;
pVal = NULL;
}
else
[pVal release]
}
Dlaczego chcesz używać tej samej nazwy funkcji dla różnych języków? Dlaczego nie możesz ich odróżnić, używając innej nazwy? – iammilind
C++ 'delete' i Obj-C' release' oznaczają całkiem różne rzeczy; łączenie tych dwóch wydaje się w najlepszym wypadku wątpliwym pomysłem. –
Najpierw myślałem o innym nazwisku, a następnie z zainteresowaniem patrzę na to, że możliwe jest posiadanie tego samego pytania w obu językach. A potem pomyślałem, że to może nie być zbyt dobry pomysł, ale wciąż czuję się ciekawie :-) Więc to jest głównie teoretyczne pytanie. –