dtoolbase: Fix issues building with C++20

This commit is contained in:
rdb 2021-03-01 10:16:03 +01:00
parent b6096c3d40
commit 4b24ac86a5
2 changed files with 17 additions and 17 deletions

View File

@ -20,7 +20,7 @@ pallocator_single(TypeHandle type_handle) noexcept :
template<class Type> template<class Type>
INLINE Type *pallocator_single<Type>:: INLINE Type *pallocator_single<Type>::
allocate(typename pallocator_single<Type>::size_type n, typename std::allocator<void>::const_pointer) { allocate(typename pallocator_single<Type>::size_type n, const void *) {
TAU_PROFILE("pallocator_single:allocate()", " ", TAU_USER); TAU_PROFILE("pallocator_single:allocate()", " ", TAU_USER);
// This doesn't support allocating arrays. // This doesn't support allocating arrays.
assert(n == 1); assert(n == 1);
@ -30,7 +30,7 @@ allocate(typename pallocator_single<Type>::size_type n, typename std::allocator<
template<class Type> template<class Type>
INLINE void pallocator_single<Type>:: INLINE void pallocator_single<Type>::
deallocate(typename pallocator_single<Type>::pointer p, typename pallocator_single<Type>::size_type) { deallocate(Type *p, typename pallocator_single<Type>::size_type) {
TAU_PROFILE("pallocator_single:deallocate()", " ", TAU_USER); TAU_PROFILE("pallocator_single:deallocate()", " ", TAU_USER);
StaticDeletedChain<Type>::deallocate(p, _type_handle); StaticDeletedChain<Type>::deallocate(p, _type_handle);
} }
@ -44,13 +44,13 @@ pallocator_array(TypeHandle type_handle) noexcept :
template<class Type> template<class Type>
INLINE Type *pallocator_array<Type>:: INLINE Type *pallocator_array<Type>::
allocate(typename pallocator_array<Type>::size_type n, typename std::allocator<void>::const_pointer) { allocate(typename pallocator_array<Type>::size_type n, const void *) {
return (typename pallocator_array<Type>::pointer) return (Type *)
ASSUME_ALIGNED(_type_handle.allocate_array(n * sizeof(Type)), MEMORY_HOOK_ALIGNMENT); ASSUME_ALIGNED(_type_handle.allocate_array(n * sizeof(Type)), MEMORY_HOOK_ALIGNMENT);
} }
template<class Type> template<class Type>
INLINE void pallocator_array<Type>:: INLINE void pallocator_array<Type>::
deallocate(typename pallocator_array<Type>::pointer p, typename pallocator_array<Type>::size_type) { deallocate(Type *p, typename pallocator_array<Type>::size_type) {
_type_handle.deallocate_array((void *)p); _type_handle.deallocate_array((void *)p);
} }

View File

@ -46,10 +46,10 @@ class pallocator_single : public std::allocator<Type> {
public: public:
// Nowadays we cannot implicitly inherit typedefs from base classes in a // Nowadays we cannot implicitly inherit typedefs from base classes in a
// template class; we must explicitly copy them here. // template class; we must explicitly copy them here.
typedef typename std::allocator<Type>::pointer pointer; typedef Type *pointer;
typedef typename std::allocator<Type>::reference reference; typedef Type &reference;
typedef typename std::allocator<Type>::const_pointer const_pointer; typedef const Type *const_pointer;
typedef typename std::allocator<Type>::const_reference const_reference; typedef const Type &const_reference;
typedef typename std::allocator<Type>::size_type size_type; typedef typename std::allocator<Type>::size_type size_type;
INLINE pallocator_single(TypeHandle type_handle) noexcept; INLINE pallocator_single(TypeHandle type_handle) noexcept;
@ -59,9 +59,9 @@ public:
INLINE pallocator_single(const pallocator_single<U> &copy) noexcept : INLINE pallocator_single(const pallocator_single<U> &copy) noexcept :
_type_handle(copy._type_handle) { } _type_handle(copy._type_handle) { }
INLINE Type *allocate(size_type n, std::allocator<void>::const_pointer hint = 0) INLINE Type *allocate(size_type n, const void *hint = 0)
RETURNS_ALIGNED(MEMORY_HOOK_ALIGNMENT); RETURNS_ALIGNED(MEMORY_HOOK_ALIGNMENT);
INLINE void deallocate(pointer p, size_type n); INLINE void deallocate(Type *p, size_type n);
template<class U> struct rebind { template<class U> struct rebind {
typedef pallocator_single<U> other; typedef pallocator_single<U> other;
@ -75,10 +75,10 @@ class pallocator_array : public std::allocator<Type> {
public: public:
// Nowadays we cannot implicitly inherit typedefs from base classes in a // Nowadays we cannot implicitly inherit typedefs from base classes in a
// template class; we must explicitly copy them here. // template class; we must explicitly copy them here.
typedef typename std::allocator<Type>::pointer pointer; typedef Type *pointer;
typedef typename std::allocator<Type>::reference reference; typedef Type &reference;
typedef typename std::allocator<Type>::const_pointer const_pointer; typedef const Type *const_pointer;
typedef typename std::allocator<Type>::const_reference const_reference; typedef const Type &const_reference;
typedef typename std::allocator<Type>::size_type size_type; typedef typename std::allocator<Type>::size_type size_type;
INLINE pallocator_array(TypeHandle type_handle = TypeHandle::none()) noexcept; INLINE pallocator_array(TypeHandle type_handle = TypeHandle::none()) noexcept;
@ -88,9 +88,9 @@ public:
INLINE pallocator_array(const pallocator_array<U> &copy) noexcept : INLINE pallocator_array(const pallocator_array<U> &copy) noexcept :
_type_handle(copy._type_handle) { } _type_handle(copy._type_handle) { }
INLINE Type *allocate(size_type n, std::allocator<void>::const_pointer hint = 0) INLINE Type *allocate(size_type n, const void *hint = 0)
RETURNS_ALIGNED(MEMORY_HOOK_ALIGNMENT); RETURNS_ALIGNED(MEMORY_HOOK_ALIGNMENT);
INLINE void deallocate(pointer p, size_type n); INLINE void deallocate(Type *p, size_type n);
template<class U> struct rebind { template<class U> struct rebind {
typedef pallocator_array<U> other; typedef pallocator_array<U> other;