std::get_temporary_buffer

来自cppreference.com
< cpp‎ | memory

 
 
 
 
定义于头文件 <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.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

count -
要分配的对象的数量
原文:
the number of objects to allocate
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

一种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).
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 例外

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
...

[编辑] 另请参阅

释放未初始化的存储空间
(函数模板) [编辑]