Base class for all allocators used by SecBlock. More...
Public Types | |
| 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 |
Public Member Functions | |
| 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. | |
| template<typename U , typename... Args> | |
| void | construct (U *ptr, Args &&...args) |
| Constructs a new U using variadic arguments. | |
| template<typename U > | |
| void | destroy (U *ptr) |
| Destroys an U constructed with variadic arguments. | |
Base class for all allocators used by SecBlock.
| T | the class or type |
Definition at line 29 of file secblock.h.
| size_type AllocatorBase< T >::max_size | ( | ) | const [inline] |
Returns the maximum number of elements the allocator can provide.
Internally, preprocessor macros are used rather than std::numeric_limits because the latter is not a constexpr. Some compilers, like Clang, do not optimize it well under all circumstances. Compilers like GCC, ICC and MSVC appear to optimize it well in either form.
Reimplemented in NullAllocator< T >, FixedSizeAllocatorWithCleanup< T, S, A, T_Align16 >, NullAllocator< unsigned int >, NullAllocator< word16 >, NullAllocator< byte >, NullAllocator< T_HashWordType >, NullAllocator< Word >, NullAllocator< word64 >, NullAllocator< word32 >, FixedSizeAllocatorWithCleanup< word32, S >, FixedSizeAllocatorWithCleanup< Word, S >, FixedSizeAllocatorWithCleanup< T, S, NullAllocator< T >, T_Align16 >, FixedSizeAllocatorWithCleanup< word64, S >, FixedSizeAllocatorWithCleanup< T_HashWordType, S >, FixedSizeAllocatorWithCleanup< word64, S, NullAllocator< word64 >, T_Align16 >, FixedSizeAllocatorWithCleanup< word32, S, NullAllocator< word32 >, true >, FixedSizeAllocatorWithCleanup< word16, S >, FixedSizeAllocatorWithCleanup< byte, S >, FixedSizeAllocatorWithCleanup< word32, S, NullAllocator< word32 >, T_Align16 >, FixedSizeAllocatorWithCleanup< T_HashWordType, S, NullAllocator< T_HashWordType >, T_Align16 >, and FixedSizeAllocatorWithCleanup< unsigned int, S >.
Definition at line 55 of file secblock.h.
| void AllocatorBase< T >::construct | ( | U * | ptr, | |
| Args &&... | args | |||
| ) | [inline] |
Constructs a new U using variadic arguments.
| U | the type to be forwarded | |
| Args | the arguments to be forwarded |
| ptr | pointer to type U | |
| args | variadic arguments |
This is a C++11 feature. It is available when CRYPTOPP_CXX11_VARIADIC_TEMPLATES is defined. The define is controlled by compiler versions detected in config.h.
Definition at line 67 of file secblock.h.
Destroys an U constructed with variadic arguments.
| U | the type to be forwarded |
This is a C++11 feature. It is available when CRYPTOPP_CXX11_VARIADIC_TEMPLATES is defined. The define is controlled by compiler versions detected in config.h.
Definition at line 74 of file secblock.h.
1.6.1