37 const_pointer
address (const_reference value)
const {
63 std::cerr <<
"Allocator: allocate " << num <<
" element(s)"
64 <<
" of size " <<
sizeof(
T) << std::endl;
66 pointer ret =
reinterpret_cast<pointer
>(
operator new(num*
sizeof(
T)) );
68 std::cerr <<
" allocated at: " << (
void*)ret << std::endl;
77 std::cerr <<
"Allocator: construct " << p << std::endl;
83 std::cerr <<
"done." << std::endl;
91 std::cerr <<
"Allocator: destroy " << p << std::endl;
95 std::cerr <<
"done." << std::endl;
103 std::cerr <<
"Allocator: deallocate " << num <<
" element(s)"
104 <<
" of size " <<
sizeof(
T)
105 <<
" at: " << static_cast<void*>(p) << std::endl;
107 operator delete(
static_cast<void*
>(
p), num*
sizeof(
T));
109 std::cerr <<
"done." << std::endl;
114 void *
operator new(
size_t size,
void *ptr) { return ::operator
new(size, ptr);}
115 void *
operator new[](
size_t size,
void *ptr) { return ::operator
new(size, ptr);}
116 void *
operator new(
size_t size) {
return _mm_malloc(size, 16); }
117 void *
operator new[](
size_t size) {
return _mm_malloc(size, 16); }
118 void operator delete(
void *ptr, size_t) { _mm_free(ptr); }
119 void operator delete[](
void *ptr, size_t) { _mm_free(ptr); }
123 template <
class T1,
class T2>
128 template <
class T1,
class T2>
140 typedef std::vector<T>
TStd;
142 typedef std::vector<T, SimdAlloc<T> >
TSimd;
pointer allocate(size_type num, const void *=0)
std::vector< T, SimdAlloc< T > > TSimd
const T & const_reference
bool operator==(const SimdAlloc< T1 > &, const SimdAlloc< T2 > &)
nsL1::vector< fvec >::TSimd vector_fvec
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
std::ptrdiff_t difference_type
void deallocate(pointer p, size_type num)
size_type max_size() const
const_pointer address(const_reference value) const
SimdAlloc(const SimdAlloc< U > &)
pointer address(reference value) const
bool operator!=(const SimdAlloc< T1 > &, const SimdAlloc< T2 > &)
void construct(pointer p, const T &value)
SimdAlloc(const SimdAlloc &)