diff options
Diffstat (limited to 'core/src/Utils/RTTI.hpp')
-rw-r--r-- | core/src/Utils/RTTI.hpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/core/src/Utils/RTTI.hpp b/core/src/Utils/RTTI.hpp index bc0d289..86b1e2c 100644 --- a/core/src/Utils/RTTI.hpp +++ b/core/src/Utils/RTTI.hpp @@ -3,13 +3,15 @@ #include <cassert> template <class T, class TBase> -bool is_a(TBase* t) { +bool is_a(TBase* t) +{ assert(t != nullptr); return T::IsInstance(t); } template <class T, class TBase> -bool is_a_nullable(TBase* t) { +bool is_a_nullable(TBase* t) +{ if (t) { return is_a<T, TBase>(t); } else { @@ -18,7 +20,8 @@ bool is_a_nullable(TBase* t) { } template <class T, class TBase> -T* dyn_cast(TBase* t) { +T* dyn_cast(TBase* t) +{ assert(t != nullptr); if (T::IsInstance(t)) { return static_cast<T*>(t); @@ -28,7 +31,8 @@ T* dyn_cast(TBase* t) { } template <class T, class TBase> -const T* dyn_cast(const TBase* t) { +const T* dyn_cast(const TBase* t) +{ assert(t != nullptr); if (T::IsInstance(t)) { return static_cast<const T*>(t); @@ -38,7 +42,8 @@ const T* dyn_cast(const TBase* t) { } template <class T, class TBase> -T* dyn_cast_nullable(TBase* t) { +T* dyn_cast_nullable(TBase* t) +{ if (!t) return nullptr; return dyn_cast<T, TBase>(t); } |