Allocates a block of memory with cleanup.
More...
|
typedef AllocatorBase< T >::value_type | value_type |
|
typedef AllocatorBase< T >::size_type | size_type |
|
typedef AllocatorBase< T >::difference_type | difference_type |
|
typedef AllocatorBase< T >::pointer | pointer |
|
typedef AllocatorBase< T >::const_pointer | const_pointer |
|
typedef AllocatorBase< T >::reference | reference |
|
typedef AllocatorBase< T >::const_reference | const_reference |
|
typedef T | value_type |
|
typedef size_t | size_type |
|
typedef std::ptrdiff_t | difference_type |
|
typedef T * | pointer |
|
typedef const T * | const_pointer |
|
typedef T & | reference |
|
typedef const T & | const_reference |
|
|
pointer | allocate (size_type size, const void *ptr=NULL) |
| Allocates a block of memory. More...
|
|
void | deallocate (void *ptr, size_type size) |
| Deallocates a block of memory. More...
|
|
pointer | reallocate (T *oldPtr, size_type oldSize, size_type newSize, bool preserve) |
| Reallocates a block of memory. More...
|
|
pointer | address (reference r) const |
|
const_pointer | address (const_reference r) const |
|
void | construct (pointer p, const T &val) |
|
void | destroy (pointer p) |
|
size_type | max_size () const |
| Returns the maximum number of elements the allocator can provide. More...
|
|
template<typename U , typename... Args> |
void | construct (U *ptr, Args &&... args) |
| Constructs a new U using variadic arguments. More...
|
|
template<typename U > |
void | destroy (U *ptr) |
| Destroys an U constructed with variadic arguments. More...
|
|
template<class T, bool T_Align16 = false>
class AllocatorWithCleanup< T, T_Align16 >
Allocates a block of memory with cleanup.
- Template Parameters
-
T | class or type |
T_Align16 | boolean that determines whether allocations should be aligned on 16-byte boundaries If T_Align16 is true, then AllocatorWithCleanup calls AlignedAllocate() for memory allocations. If T_Align16 is false, then AllocatorWithCleanup() calls UnalignedAllocate() for memory allocations. Template parameter T_Align16 is effectively controlled by cryptlib.h and mirrors CRYPTOPP_BOOL_ALIGN16. CRYPTOPP_BOOL_ALIGN16 is often used as the template parameter. |
Definition at line 151 of file secblock.h.
◆ allocate()
template<class T , bool T_Align16 = false>
Allocates a block of memory.
- Parameters
-
ptr | the size of the allocation |
size | the size of the allocation, in elements |
- Returns
- a memory block
- Exceptions
-
- See also
- CallNewHandler() for the methods used to recover from a failed allocation attempt.
- Note
- size is the count of elements, and not the number of bytes
Definition at line 171 of file secblock.h.
◆ deallocate()
template<class T , bool T_Align16 = false>
Deallocates a block of memory.
- Parameters
-
Definition at line 195 of file secblock.h.
◆ reallocate()
template<class T , bool T_Align16 = false>
pointer AllocatorWithCleanup< T, T_Align16 >::reallocate |
( |
T * |
oldPtr, |
|
|
size_type |
oldSize, |
|
|
size_type |
newSize, |
|
|
bool |
preserve |
|
) |
| |
|
inline |
Reallocates a block of memory.
- Parameters
-
oldPtr | the previous allocation |
oldSize | the size of the previous allocation |
newSize | the new, requested size |
preserve | flag that indicates if the old allocation should be preserved |
- Returns
- pointer to the new memory block Internally, reallocate() calls StandardReallocate(). If preserve is true, then index 0 is used to begin copying the old memory block to the new one. If the block grows, then the old array is copied in its entirety. If the block shrinks, then only newSize elements are copied from the old block to the new one.
- Note
- oldSize and newSize are the count of elements, and not the number of bytes.
Definition at line 221 of file secblock.h.
The documentation for this class was generated from the following file: