totally_ordered_wrapper: make default-constructible

Pointers are.

The default-constructor is = default'ed, meaning it has the same
semantics as the raw pointer it replaces:

   totally_ordered_wrapper<int*> p; // partially-formed (uninit'ed)
   totally_ordered_wrapper<int*> p{}; // well-formed (nullptr)

   totally_ordered_wrapper<int*> a[1024]; // doesn't write 8KiB of NULs

Change-Id: I0d2e906bc5ec45d95b03a3af451167fec84439fd
Reviewed-by: Rym Bouabid <rym.bouabid@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
This commit is contained in:
Marc Mutz 2024-05-29 08:40:49 +02:00
parent 9dbe681218
commit d397ae4c06

View File

@ -619,6 +619,7 @@ class totally_ordered_wrapper
P ptr;
public:
totally_ordered_wrapper() noexcept = default;
explicit constexpr totally_ordered_wrapper(P p) noexcept : ptr(p) {}
constexpr P get() const noexcept { return ptr; }