From 53d64a595520ecec85ba3069f0df35f9ed9001a0 Mon Sep 17 00:00:00 2001 From: meator Date: Thu, 23 Jan 2025 20:01:37 +0100 Subject: [PATCH] unique_impl_ptr: fix bug in operator< A non-const std::less instantiation cannot be used for const data. --- spimpl.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spimpl.h b/spimpl.h index 7dafccf..f929e60 100644 --- a/spimpl.h +++ b/spimpl.h @@ -268,8 +268,8 @@ namespace spimpl { template inline bool operator< (const unique_impl_ptr& l, const unique_impl_ptr& r) { - using P1 = typename unique_impl_ptr::pointer; - using P2 = typename unique_impl_ptr::pointer; + using P1 = typename unique_impl_ptr::const_pointer; + using P2 = typename unique_impl_ptr::const_pointer; using CT = typename std::common_type::type; return std::less()(l.get(), r.get()); } @@ -319,14 +319,14 @@ namespace spimpl { template inline bool operator< (const unique_impl_ptr& l, std::nullptr_t) { - using P = typename unique_impl_ptr::pointer; + using P = typename unique_impl_ptr::const_pointer; return std::less

()(l.get(), nullptr); } template inline bool operator< (std::nullptr_t, const unique_impl_ptr& p) { - using P = typename unique_impl_ptr::pointer; + using P = typename unique_impl_ptr::const_pointer; return std::less

()(nullptr, p.get()); }