memory: smart pointer factories should not be static (#72)

This commit is contained in:
Lukas 2025-08-14 17:16:28 +02:00 committed by GitHub
parent df6b8820c4
commit 69efb6291c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 11 additions and 19 deletions

View file

@ -83,9 +83,7 @@ namespace Hyprutils::Memory {
std::swap(m_ptr, ref.m_ptr); std::swap(m_ptr, ref.m_ptr);
} }
CAtomicSharedPointer() noexcept { CAtomicSharedPointer() noexcept = default;
; // empty
}
CAtomicSharedPointer(std::nullptr_t) noexcept { CAtomicSharedPointer(std::nullptr_t) noexcept {
; // empty ; // empty
@ -262,9 +260,7 @@ namespace Hyprutils::Memory {
m_ptr = ref.m_ptr; m_ptr = ref.m_ptr;
} }
CAtomicWeakPointer() noexcept { CAtomicWeakPointer() noexcept = default;
; // empty
}
CAtomicWeakPointer(std::nullptr_t) noexcept { CAtomicWeakPointer(std::nullptr_t) noexcept {
; // empty ; // empty

View file

@ -27,3 +27,5 @@ namespace Hyprutils::Memory {
return std::bit_cast<To>(from); return std::bit_cast<To>(from);
} }
} }

View file

@ -61,9 +61,7 @@ namespace Hyprutils {
} }
/* creates an empty shared pointer with no implementation */ /* creates an empty shared pointer with no implementation */
CSharedPointer() noexcept { CSharedPointer() noexcept = default;
; // empty
}
/* creates an empty shared pointer with no implementation */ /* creates an empty shared pointer with no implementation */
CSharedPointer(std::nullptr_t) noexcept { CSharedPointer(std::nullptr_t) noexcept {
@ -184,7 +182,7 @@ namespace Hyprutils {
}; };
template <typename U, typename... Args> template <typename U, typename... Args>
static CSharedPointer<U> makeShared(Args&&... args) { [[nodiscard]] inline CSharedPointer<U> makeShared(Args&&... args) {
return CSharedPointer<U>(new U(std::forward<Args>(args)...)); return CSharedPointer<U>(new U(std::forward<Args>(args)...));
} }

View file

@ -42,9 +42,7 @@ namespace Hyprutils {
} }
/* creates an empty unique pointer with no implementation */ /* creates an empty unique pointer with no implementation */
CUniquePointer() noexcept { CUniquePointer() noexcept = default;
; // empty
}
/* creates an empty unique pointer with no implementation */ /* creates an empty unique pointer with no implementation */
CUniquePointer(std::nullptr_t) noexcept { CUniquePointer(std::nullptr_t) noexcept {
@ -136,7 +134,7 @@ namespace Hyprutils {
}; };
template <typename U, typename... Args> template <typename U, typename... Args>
static CUniquePointer<U> makeUnique(Args&&... args) { [[nodiscard]] inline CUniquePointer<U> makeUnique(Args&&... args) {
return CUniquePointer<U>(new U(std::forward<Args>(args)...)); return CUniquePointer<U>(new U(std::forward<Args>(args)...));
} }
} }

View file

@ -102,9 +102,7 @@ namespace Hyprutils {
} }
/* create an empty weak ptr */ /* create an empty weak ptr */
CWeakPointer() { CWeakPointer() noexcept = default;
;
}
~CWeakPointer() { ~CWeakPointer() {
decrementWeak(); decrementWeak();