template<typename T>
class cusalloc
{
public:
typedef std::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;
typedef T value_type;
public:
cusalloc()
{
}
cusalloc(const cusalloc<T>&)
{
}
cusalloc& operator=(const cusalloc& rhs)
{
return *this;
}
static pointer allocate(size_type n)
{
return (pointer)malloc(n*sizeof(T));
}
static void deallocate(pointer ptr, size_type n)
{
free((pointer)ptr);
}
size_type max_size() const throw()
{
return size_t(-1) / sizeof(T);
}
template<typename U>
struct rebind
{
typedef cusalloc<U> other;
};
};
///
std::vector<int, cusalloc<int>> obj;
typedef basic_string<char, char_traits<char>, cusalloc<char> > cusstring;