From 93d26c0f5df67236d21b51f71bc3bb781687df51 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Tue, 7 May 2024 13:59:09 +0200 Subject: d --- compat/intrusive-ptr.hpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/compat/intrusive-ptr.hpp b/compat/intrusive-ptr.hpp index 5f05777c..83cb3527 100644 --- a/compat/intrusive-ptr.hpp +++ b/compat/intrusive-ptr.hpp @@ -50,7 +50,7 @@ struct refcount_ops template struct refcount_access { - using counter_type = refcount_traits::counter_type; + using counter_type = typename refcount_traits::counter_type; refcount_access() = delete; static constexpr auto access(T* ptr) noexcept -> counter_type&; // todo this should return the iptr's control block. it has to contain the original pointer (because the casted ptr (or its base class, when casted to iptr) might not have a virtual dtor), shared count, and (shared+weak) count. @@ -169,9 +169,6 @@ class basic_iptr final T* _ptr{nullptr}; // todo control block - // todo use std::construct_at as it has a constexpr exception. - // ...but it requires :( — maybe use an ifdef? - public: constexpr basic_iptr() noexcept; constexpr basic_iptr(std::nullptr_t) noexcept; @@ -184,7 +181,7 @@ public: constexpr ~basic_iptr() noexcept; template requires std::is_constructible_v - constexpr basic_iptr(InPlaceInitT, Ts&&... args) // NOLINT(*-missing-std-forward) + explicit constexpr basic_iptr(InPlaceInitT, Ts&&... args) // NOLINT(*-missing-std-forward) noexcept(std::is_nothrow_constructible_v); constexpr inline void reset() noexcept; -- cgit v1.2.3