From 9ad3eafdfa46dc01d7a8737a59fe59caffd91d67 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 17 Mar 2026 22:22:29 +0100 Subject: kstd: fix constructor selection in vector The old version would lead to potential issues, since an explicit ctor may get selected. Ideally vector should be adapted to not allocated an array of it's value type but simply suitably aligned raw storage. --- libs/kstd/include/kstd/vector | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'libs/kstd/include') diff --git a/libs/kstd/include/kstd/vector b/libs/kstd/include/kstd/vector index 7568cb6..41b380e 100644 --- a/libs/kstd/include/kstd/vector +++ b/libs/kstd/include/kstd/vector @@ -85,7 +85,7 @@ namespace kstd vector(vector const & other) : _size(other._size) , _capacity(other._capacity) - , _data(new value_type[_capacity]{}) + , _data(new value_type[_capacity]()) { std::ranges::copy(other, _data); } @@ -104,7 +104,7 @@ namespace kstd delete[] _data; _size = other._size; _capacity = other._capacity; - _data = new value_type[_capacity]{}; + _data = new value_type[_capacity](); std::ranges::copy(other, _data); return *this; } @@ -490,7 +490,7 @@ namespace kstd } _capacity = new_capacity; - auto temp = new value_type[_capacity]{}; + auto temp = new value_type[_capacity](); std::ranges::copy(begin(), end(), temp); delete[] _data; _data = temp; -- cgit v1.2.3 From 044a64ef019ce2ff241e72f2b7b3a444b922b798 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 17 Mar 2026 22:31:40 +0100 Subject: kstd: add more nodiscard to shared_ptr --- libs/kstd/include/kstd/bits/shared_ptr.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'libs/kstd/include') diff --git a/libs/kstd/include/kstd/bits/shared_ptr.hpp b/libs/kstd/include/kstd/bits/shared_ptr.hpp index ed23d29..6bce83f 100644 --- a/libs/kstd/include/kstd/bits/shared_ptr.hpp +++ b/libs/kstd/include/kstd/bits/shared_ptr.hpp @@ -250,7 +250,7 @@ namespace kstd * * @return Returns the object owned by *this, equivalent to *get(). */ - auto operator*() const -> T & + [[nodiscard]] auto operator*() const -> T & { return *pointer; } @@ -260,7 +260,7 @@ namespace kstd * * @return Returns a pointer to the object owned by *this, i.e. get(). */ - auto operator->() const -> T * + [[nodiscard]] auto operator->() const -> T * { return pointer; } @@ -270,7 +270,7 @@ namespace kstd * * @return Pointer to the managed object or nullptr if no object is owned. */ - auto get() const -> T * + [[nodiscard]] auto get() const -> T * { return pointer; } @@ -301,7 +301,7 @@ namespace kstd * * @return true if *this owns an object, false otherwise. */ - explicit operator bool() const + [[nodiscard]] explicit operator bool() const { return pointer != nullptr; } @@ -317,7 +317,7 @@ namespace kstd /** * @brief Compare nullptr with shared_ptr. */ - friend auto operator==(std::nullptr_t, shared_ptr const & ptr) -> bool + [[nodiscard]] friend auto operator==(std::nullptr_t, shared_ptr const & ptr) -> bool { return ptr.pointer == nullptr; } @@ -325,7 +325,7 @@ namespace kstd /** * @brief Defaulted three-way comparator operator. */ - auto operator<=>(shared_ptr const & other) const = default; + [[nodiscard]] auto operator<=>(shared_ptr const & other) const = default; private: /** -- cgit v1.2.3