mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-26 17:20:53 +01:00
[shared] ExpiringPointer: add constructor to enable pointer casting
This commit is contained in:
@@ -7,12 +7,21 @@ namespace Shared {
|
||||
|
||||
template <class T>
|
||||
class ExpiringPointer {
|
||||
template<typename U>
|
||||
friend class ExpiringPointer;
|
||||
public:
|
||||
ExpiringPointer(T * rawPointer, bool reinitGlobal = true) : m_rawPointer(rawPointer) {
|
||||
#if DEBUG
|
||||
s_global = rawPointer;
|
||||
#endif
|
||||
}
|
||||
template<class U>
|
||||
ExpiringPointer(ExpiringPointer<U> p) : m_rawPointer(static_cast<T *>(p.m_rawPointer)) {
|
||||
#if DEBUG
|
||||
s_global = m_rawPointer;
|
||||
#endif
|
||||
}
|
||||
bool isNull() { return m_rawPointer == nullptr; }
|
||||
T *operator->() {
|
||||
#if DEBUG
|
||||
assert(m_rawPointer != nullptr && m_rawPointer == s_global);
|
||||
|
||||
Reference in New Issue
Block a user