Aligned memory allocator¶
-
template<class T, size_t Align = default_arch::alignment()>
class xsimd::aligned_allocator¶ Allocator for aligned memory.
The aligned_allocator class template is an allocator that performs memory allocation aligned by the specified value.
- Template Parameters:
T – type of objects to allocate.
Align – alignment in bytes.
Public Functions
-
inline aligned_allocator() noexcept¶
Default constructor.
-
inline aligned_allocator(const aligned_allocator &rhs) noexcept¶
Copy constructor.
-
template<class U>
inline aligned_allocator(const aligned_allocator<U, Align> &rhs) noexcept¶ Extended copy constructor.
-
inline ~aligned_allocator()¶
Destructor.
-
inline pointer address(reference) noexcept¶
Returns the actual address of
r
even in presence of overloadedoperator&
.- Parameters:
r – the object to acquire address of.
- Returns:
the actual address of
r
.
-
inline const_pointer address(const_reference) const noexcept¶
Returns the actual address of
r
even in presence of overloadedoperator&
.- Parameters:
r – the object to acquire address of.
- Returns:
the actual address of
r
.
-
inline pointer allocate(size_type n, const void *hint = 0)¶
Allocates
n * sizeof(T)
bytes of uninitialized memory, aligned byA
.The alignment may require some extra memory allocation.
- Parameters:
n – the number of objects to allocate storage for.
hint – unused parameter provided for standard compliance.
- Returns:
a pointer to the first byte of a memory block suitably aligned and sufficient to hold an array of
n
objects of typeT
.
-
inline void deallocate(pointer p, size_type n)¶
Deallocates the storage referenced by the pointer p, which must be a pointer obtained by an earlier call to allocate().
The argument
n
must be equal to the first argument of the call to allocate() that originally producedp
; otherwise, the behavior is undefined.- Parameters:
p – pointer obtained from allocate().
n – number of objects earlier passed to allocate().
-
inline size_type max_size() const noexcept¶
Returns the maximum theoretically possible value of
n
, for which the call allocate(n, 0) could succeed.- Returns:
the maximum supported allocated size.
-
inline size_type size_max() const noexcept¶
This method is deprecated, use max_size() instead.
-
template<class U>
struct rebind¶