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.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 参数

count -
要分配的对象的数量
原文:
the number of objects to allocate
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 返回值

一种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 Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 例外

noexcept规定:  
noexcept
  (C++11 起)

[编辑] 示例

[编辑]
#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
...

[编辑] 另请参阅

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