В шапку внесены следующие дополнения:<memory>
namespace std { template <class T> pair<T*, ptrdiff_t> get_temporary_buffer(ptrdiff_t n) noexcept; template <class T> void return_temporary_buffer(T* p); }
template <class T>
pair<T*, ptrdiff_t> get_temporary_buffer(ptrdiff_t n) noexcept;
Effects: Получает указатель на неинициализированное непрерывное хранилище для N смежных объектов типа Tдля некоторого неотрицательного числа N. Поддерживаются ли избыточно выровненные типы, зависит от реализации ([basic.align]).
Remarks: Вызов get_temporary_buffer с положительным числом n - это необязательный запрос на возврат хранилища для n объектов типа T. В этом случае реализации разрешается вместо этого возвращать хранилище для неотрицательного числа N таких объектов, где N != n (включая N == 0). [ Note: Запрос не является обязывающим, чтобы предоставить свободу для оптимизации управления памятью в зависимости от реализации. ] — end note
Returns: Если n <= 0 или если не удалось получить хранилище, возвращает пару P , которая P.first является значением нулевого указателя и P.second == 0; в противном случае возвращает пару P , которая P.first ссылается на адрес неинициализированного хранилища и P.second ссылается на его емкость N (в единицах sizeof(T)).
template <class T> void return_temporary_buffer(T* p);
Requires: p должен быть значением указателя, возвращенным более ранним вызовом get_temporary_buffer , который не был признан недействительным в результате промежуточного вызова return_temporary_buffer(T*).