19 #define DYNPTR_CAST(t,p) (dynamic_cast <t*>(p))
20 #define IS_TYPE_OF(t,p) ((dynamic_cast<const t*>(p))!=nullptr)
22 #define DYNPTR_CAST(t,p) (static_cast <t*>(p))
23 #define IS_TYPE_OF(t,p) true
26 template <
class _TYPE_TO,
class _TYPE_FROM >
33 _TYPE_TO* p2 =
dynamic_cast<_TYPE_TO*
>(p);
34 return p2 != nullptr ;
37 template <
class _TYPE_TO,
class _TYPE_FROM >
45 ASSERT(is_valid_cast<_TYPE_TO>(p));
47 return static_cast<_TYPE_TO*
>(p);
50 #define CHECKPTR_CAST(t,p) (::Gray::check_cast<t>(p))
#define ASSERT(exp)
Definition: cDebugAssert.h:87
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
bool is_valid_cast(_TYPE_FROM *p)
Definition: PtrCast.h:27
_TYPE_TO * check_cast(_TYPE_FROM *p)
Definition: PtrCast.h:38