namespace std {
// TEMPLATE CLASSES
template<class T>
class allocator;
class allocator<void>;
template<class FwdIt, class T>
class raw_storage_iterator;
template<class T>
class auto_ptr;
// TEMPLATE OPERATORS
template<class T>
bool operator==(allocator<T>& lhs,
allocator<T>& rhs);
template<class T>
bool operator!=(allocator<T>& lhs,
allocator<T>& rhs);
template<class T>
void operator delete(void *p, size_t n, allocator& al);
template<class T>
void *operator new(size_t n, allocator& al);
// TEMPLATE FUNCTIONS
template<class T>
pair<T *, ptrdiff_t> get_temporary_buffer(ptrdiff_t n, T *);
template<class T>
void return_temporary_buffer(T *p);
template<class InIt, class FwdIt>
FwdIt uninitialized_copy(InIt first, InIt last, FwdIt result);
template<class FwdIt, class T>
void uninitialized_fill(FwdIt first, FwdIt last, const T& x);
template<class FwdIt, class Size, class T>
void uninitialized_fill_n(FwdIt first, Size n, const T& x);
};
Include the STL standard header <memory>
to define a class, an operator, and several templates that help allocate and
free objects.