diff options
Diffstat (limited to 'source/Common/RTTI.hpp')
-rw-r--r-- | source/Common/RTTI.hpp | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/source/Common/RTTI.hpp b/source/Common/RTTI.hpp deleted file mode 100644 index bc0d289..0000000 --- a/source/Common/RTTI.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#pragma once - -#include <cassert> - -template <class T, class TBase> -bool is_a(TBase* t) { - assert(t != nullptr); - return T::IsInstance(t); -} - -template <class T, class TBase> -bool is_a_nullable(TBase* t) { - if (t) { - return is_a<T, TBase>(t); - } else { - return false; - } -} - -template <class T, class TBase> -T* dyn_cast(TBase* t) { - assert(t != nullptr); - if (T::IsInstance(t)) { - return static_cast<T*>(t); - } else { - return nullptr; - } -} - -template <class T, class TBase> -const T* dyn_cast(const TBase* t) { - assert(t != nullptr); - if (T::IsInstance(t)) { - return static_cast<const T*>(t); - } else { - return nullptr; - } -} - -template <class T, class TBase> -T* dyn_cast_nullable(TBase* t) { - if (!t) return nullptr; - return dyn_cast<T, TBase>(t); -} |