35 #ifndef _BLAZE_UTIL_ALIGNEDALLOCATOR_H_ 36 #define _BLAZE_UTIL_ALIGNEDALLOCATOR_H_ 68 template<
typename Type >
94 template<
typename Type2 >
106 template<
typename Type2 >
114 inline constexpr
size_t max_size() const noexcept;
123 inline
Pointer allocate (
size_t numObjects, const
void* localityHint =
nullptr );
150 template< typename Type >
161 template<
typename Type >
162 template<
typename Type2 >
183 template<
typename Type >
186 return size_t(-1) /
sizeof( Type );
196 template<
typename Type >
210 template<
typename Type >
240 template<
typename Type >
248 if( alignment >= 8UL ) {
249 return reinterpret_cast<Type*
>( allocate_backend( numObjects*
sizeof(Type), alignment ) );
252 return static_cast<Pointer>(
operator new[]( numObjects *
sizeof( Type ) ) );
269 template<
typename Type >
279 if( alignment >= 8UL ) {
280 deallocate_backend( ptr );
283 operator delete[]( ptr );
307 template<
typename Type >
310 ::new( ptr ) Type( value );
324 template<
typename Type >
343 template<
typename T1,
typename T2 >
346 template<
typename T1,
typename T2 >
359 template<
typename T1
376 template<
typename T1
constexpr size_t max_size() const noexcept
Returns the maximum possible number of elements that can be allocated together.
Definition: AlignedAllocator.h:184
Header file for the AlignmentOf type trait.
Header file for the UNUSED_PARAMETER function template.
ValueType value_type
Type of the allocated values.
Definition: AlignedAllocator.h:82
Header file for memory allocation and deallocation functionality.
void destroy(Pointer ptr) noexcept
Destroys the object of type Type at the specified memory location.
Definition: AlignedAllocator.h:325
Pointer address(Reference x) const noexcept
Returns the address of the given element.
Definition: AlignedAllocator.h:198
DifferenceType difference_type
Difference type of the aligned allocator.
Definition: AlignedAllocator.h:88
ConstPointer const_pointer
Type of a pointer-to-const to the allocated values.
Definition: AlignedAllocator.h:84
Pointer pointer
Type of a pointer to the allocated values.
Definition: AlignedAllocator.h:83
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Pointer allocate(size_t numObjects, const void *localityHint=nullptr)
Allocates aligned memory for the specified number of objects.
Definition: AlignedAllocator.h:242
SizeType size_type
Size type of the aligned allocator.
Definition: AlignedAllocator.h:87
Type * Pointer
Type of a pointer to the allocated values.
Definition: AlignedAllocator.h:74
constexpr bool operator==(const NegativeAccuracy< A > &lhs, const T &rhs)
Equality comparison between a NegativeAccuracy object and a floating point value. ...
Definition: Accuracy.h:250
void construct(Pointer ptr, const Type &value)
Constructs an object of type Type at the specified memory location.
Definition: AlignedAllocator.h:308
constexpr bool operator!=(const NegativeAccuracy< A > &lhs, const T &rhs)
Inequality comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:290
Allocator for type-specific aligned memory.The AlignedAllocator class template represents an implemen...
Definition: AlignedAllocator.h:69
const Type * ConstPointer
Type of a pointer-to-const to the allocated values.
Definition: AlignedAllocator.h:75
void deallocate(Pointer ptr, size_t numObjects)
Deallocation of memory.
Definition: AlignedAllocator.h:270
Type ValueType
Type of the allocated values.
Definition: AlignedAllocator.h:73
AlignedAllocator()
The default constructor for AlignedAllocator.
Definition: AlignedAllocator.h:151
Reference reference
Type of a reference to the allocated values.
Definition: AlignedAllocator.h:85
Type & Reference
Type of a reference to the allocated values.
Definition: AlignedAllocator.h:76
std::ptrdiff_t DifferenceType
Difference type of the aligned allocator.
Definition: AlignedAllocator.h:79
std::size_t SizeType
Size type of the aligned allocator.
Definition: AlignedAllocator.h:78
const Type & ConstReference
Type of a reference-to-const to the allocated values.
Definition: AlignedAllocator.h:77
void UNUSED_PARAMETER(const Args &...)
Suppression of unused parameter warnings.
Definition: Unused.h:81
ConstReference const_reference
Type of a reference-to-const to the allocated values.
Definition: AlignedAllocator.h:86
Size type of the Blaze library.
Evaluation of the required alignment of the given data type.The AlignmentOf type trait template evalu...
Definition: AlignmentOf.h:219
Implementation of the AlignedAllocator rebind mechanism.
Definition: AlignedAllocator.h:95