35class spursAlignedAllocator {
37 typedef spursAlignedAllocator< T , Alignment > self_type;
42 spursAlignedAllocator() {}
47 template <
typename Other >
48 spursAlignedAllocator(
const spursAlignedAllocator< Other , Alignment > & ) {}
50 typedef const T* const_pointer;
51 typedef const T& const_reference;
56 pointer address ( reference ref )
const {
return &ref; }
57 const_pointer address ( const_reference ref )
const {
return &ref; }
58 pointer allocate ( size_type n , const_pointer * hint = 0 ) {
60 return reinterpret_cast< pointer
>(spursAlignedAlloc(
sizeof(value_type) * n , Alignment ));
62 void construct ( pointer ptr ,
const value_type & value ) {
new (ptr) value_type( value ); }
63 void deallocate( pointer ptr ) {
64 spursAlignedFree(
reinterpret_cast< void *
>( ptr ) );
66 void destroy ( pointer ptr ) { ptr->~value_type(); }
69 template <
typename O >
struct rebind {
70 typedef spursAlignedAllocator< O , Alignment > other;
72 template <
typename O >
73 self_type & operator=(
const spursAlignedAllocator< O , Alignment > & ) {
return *
this; }
75 friend bool operator==(
const self_type & ,
const self_type & ) {
return true; }