Fix PHYSFSX_check_* for RAIIdmem<T[]>
This commit is contained in:
parent
d2f0bdc867
commit
3952c64ffc
|
@ -110,7 +110,7 @@ static inline PHYSFS_sint64 PHYSFSX_check_read(PHYSFS_file *file, const std::uni
|
|||
template <typename V>
|
||||
static inline PHYSFS_sint64 PHYSFSX_check_read(PHYSFS_file *file, const RAIIdmem<V> &v, PHYSFS_uint32 S, PHYSFS_uint32 C)
|
||||
{
|
||||
return PHYSFSX_check_read(file, static_cast<V *>(v), S, C);
|
||||
return PHYSFSX_check_read(file, static_cast<typename RAIIdmem<V>::pointer>(v), S, C);
|
||||
}
|
||||
|
||||
template <typename V>
|
||||
|
@ -156,7 +156,7 @@ static inline PHYSFS_sint64 PHYSFSX_check_write(PHYSFS_file *file, const std::un
|
|||
template <typename V>
|
||||
static inline PHYSFS_sint64 PHYSFSX_check_write(PHYSFS_file *file, const RAIIdmem<V> &v, PHYSFS_uint32 S, PHYSFS_uint32 C)
|
||||
{
|
||||
return PHYSFSX_check_write(file, static_cast<V *>(v), S, C);
|
||||
return PHYSFSX_check_write(file, static_cast<typename RAIIdmem<V>::pointer>(v), S, C);
|
||||
}
|
||||
|
||||
template <typename V>
|
||||
|
|
|
@ -97,10 +97,12 @@ public:
|
|||
template <typename U, typename T = typename tt::remove_extent<U>::type>
|
||||
class RAIIdmem : public std::unique_ptr<U, RAIIdmem_deleter<T>>
|
||||
{
|
||||
typedef std::unique_ptr<U, RAIIdmem_deleter<T>> base_ptr;
|
||||
static_assert(tt::is_pod<T>::value, "RAIIdmem cannot manage non-POD");
|
||||
public:
|
||||
DXX_INHERIT_CONSTRUCTORS(RAIIdmem, std::unique_ptr<U, RAIIdmem_deleter<T>>);
|
||||
operator T*() const
|
||||
typedef typename base_ptr::pointer pointer;
|
||||
DXX_INHERIT_CONSTRUCTORS(RAIIdmem, base_ptr);
|
||||
operator pointer() const
|
||||
#ifdef DXX_HAVE_CXX11_REF_QUALIFIER
|
||||
&
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue