template<class T>
pair<T *, ptrdiff_t> get_temporary_buffer(ptrdiff_t n, T *);
The template function allocates storage for a sequence of at most n elements of type T, from an unspecified source
(which may well be the standard heap used by operator new). It returns a value pr, of type pair<T *,
ptrdiff_t>. If the function allocates storage, pr.first designates the allocated storage and pr.second is the
number of elements in the longest sequence the storage can hold. Otherwise, pr.first is a null pointer.
In this implementation, if a translator does not support member template functions, the template:
template<class T>
pair<T *, ptrdiff_t> get_temporary_buffer(ptrdiff_t n);
is replaced by:
template<class T>
pair<T *, ptrdiff_t> get_temporary_buffer(ptrdiff_t n, T *);