|
Nugget
|
#include <allocator.h>

Public Member Functions | |
| EASTL_ALLOCATOR_EXPLICIT | allocator (const char *pName=EASTL_NAME_VAL(EASTL_ALLOCATOR_DEFAULT_NAME)) |
| allocator (const allocator &x) | |
| allocator (const allocator &x, const char *pName) | |
| allocator & | operator= (const allocator &x) |
| void * | allocate (size_t n, int flags=0) |
| void * | allocate (size_t n, size_t alignment, size_t offset, int flags=0) |
| void | deallocate (void *p, size_t n) |
| const char * | get_name () const |
| void | set_name (const char *pName) |
allocator
In this allocator class, note that it is not templated on any type and instead it simply allocates blocks of memory much like the C malloc and free functions. It can be thought of as similar to C++ std::allocator<char>. The flags parameter has meaning that is specific to the allocation
C++11's std::allocator (20.6.9) doesn't have a move constructor or assignment operator. This is possibly because std::allocators are associated with types instead of as instances. The potential non-equivalance of C++ std::allocator instances has been a source of some acknowledged design problems. We don't implement support for move construction or assignment in eastl::allocator, but users can define their own allocators which do have move functions and the eastl containers are compatible with such allocators (i.e. nothing unexpected will happen).