diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/almalloc.h | 23 |
1 files changed, 2 insertions, 21 deletions
diff --git a/common/almalloc.h b/common/almalloc.h index 270cd76c..a795fc3b 100644 --- a/common/almalloc.h +++ b/common/almalloc.h @@ -108,21 +108,6 @@ template<typename T, std::size_t N, typename U, std::size_t M> constexpr bool operator!=(const allocator<T,N>&, const allocator<U,M>&) noexcept { return false; } -namespace detail_ { - template<typename... Ts> - using void_t = void; - - template<typename T, typename = void> - struct has_to_address_ : public std::false_type { }; - template<typename T> - struct has_to_address_<T, - void_t<decltype(std::pointer_traits<T>::to_address(std::declval<const T&>()))>> - : public std::true_type - { }; - template<typename T> - constexpr bool has_to_address = has_to_address_<T>::value; -} // namespace detail_ - template<typename T> constexpr T *to_address(T *p) noexcept { @@ -130,12 +115,8 @@ constexpr T *to_address(T *p) noexcept return p; } -template<typename T, std::enable_if_t<detail_::has_to_address<T>,bool> = true> -constexpr auto to_address(const T& p) noexcept -{ return std::pointer_traits<T>::to_address(p); } - -template<typename T, std::enable_if_t<!detail_::has_to_address<T>,bool> = true> -constexpr auto to_address(const T& p) noexcept +template<typename T> +constexpr auto to_address(const T &p) noexcept { return to_address(p.operator->()); } |