Пространства имён
Варианты
Действия

std::get_temporary_buffer

Материал из cppreference.com
< cpp‎ | memory

 
 
 
 
Defined in header <memory>
template< class T >
std::pair< T*, std::ptrdiff_t > get_temporary_buffer( std::ptrdiff_t count )
Выделяет хранения достаточным для хранения до count соседние объекты типа T. Если недостаточно памяти для всех count объекты, выделяет меньше, чем count, если это возможно.
Оригинал:
Allocates storage sufficient to store up to count adjacent objects of type T. If there is insufficient memory for all count objects, allocates less than count, if possible.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Параметры

count
количество объектов, выделить
Оригинал:
the number of objects to allocate
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Возвращаемое значение

std::pair проведения указатель на начало выделенного хранения и количество объектов, которые помещаются в хранилище, что было на самом деле выделяется (может быть равна нулю).
Оригинал:
An std::pair holding a pointer to the beginning of the allocated storage and the number of objects that fit in the storage that was actually allocated (may be zero).
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Исключения

спецификация noexcept:  
noexcept
  

[править] Пример

#include <algorithm>
#include <iostream>
#include <memory>
#include <string>
 
int main()
{
    const std::string s[] = {"string", "1", "test", "..."};
    std::string* p = std::get_temporary_buffer<std::string>(4).first;
 
    std::copy(std::begin(s), std::end(s),
              std::raw_storage_iterator<std::string*, std::string>(p));
 
    for (std::string* i = p; i != p+4; ++i) {
        std::cout << *i << '\n';
        i->~basic_string<char>();
    }
    std::return_temporary_buffer(p);
}

Вывод:

string
1
test
...

[править] См. также

освобождает неинициализированные хранения
Оригинал:
frees uninitialized storage
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(шаблон функции) [править]