namespace std {
template<class Ty>
class allocator;
template<>
class allocator<void>;
template<class FwdIt, class Ty>
class raw_storage_iterator;
template<class Ty>
class auto_ptr;
template<class Ty>
class auto_ptr_ref;
// TEMPLATE OPERATORS
template<class Ty>
bool operator==(const allocator<Ty>& left,
const allocator<Ty>& right);
template<class Ty>
bool operator!=(const allocator<Ty>& left,
const allocator<Ty>& right);
// TEMPLATE FUNCTIONS
template<class Ty>
pair<Ty *, ptrdiff_t>
get_temporary_buffer(ptrdiff_t count);
template<class Ty>
void return_temporary_buffer(Ty *pbuf);
template<class InIt, class FwdIt>
FwdIt uninitialized_copy(InIt first, InIt last,
FwdIt dest);
template<class FwdIt, class Ty>
void uninitialized_fill(FwdIt first, FwdIt last,
const Ty& val);
template<class FwdIt, class Size, class Ty>
void uninitialized_fill_n(FwdIt first, Size count,
const Ty& val);
}