std::get_temporary_buffer
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <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 | - | 要分配的对象的数量
|
[编辑] 返回值
一种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).
[编辑] 例外
[编辑] 示例
#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 ...
[编辑] 另请参阅
释放未初始化的存储 (函数模板) |