std::allocate_shared
来自cppreference.com
< cpp | memory | shared ptr
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <memory> 中定义
|
||
template< class T, class Alloc, class... Args > shared_ptr<T> allocate_shared( const Alloc& alloc, Args... args ); |
||
构造一个对象的类型
T
,并把它封装在一个std::shared_ptrargs
的构造函数的参数列表的T
的原文:
Constructs an object of type
T
and wraps it in a std::shared_ptr using args
as the parameter list for the constructor of T
.所有的内存分配是alloc,满足
Allocator
要求的副本.原文:
All memory allocation is done using a copy of alloc, which satisfies the
Allocator
requirements.目录 |
[编辑] 参数
alloc | - | The Allocator to use.
|
args... | - | 将兴建的一个实例
T 的参数列表.原文: list of arguments with which an instance of T will be constructed. |
[编辑] 返回值
std::shared_ptr的一个实例的类型
T
.原文:
std::shared_ptr of an instance of type
T
.[编辑] 例外
可投掷抛出的异常Alloc::allocate()或从构造的
T
.原文:
Can throw the exceptions thrown from Alloc::allocate() or from the constructor of
T
.[编辑] 注释
这个函数分配的内存为T的对象,并为与一个内存分配的shared_ptr的控制块。与此相反,声明
std::shared_ptr<T> p(new T(Args...))
执行两个内存分配,这可能会招致不必要的开销.原文:
This function allocates memory for the T object and for the shared_ptr's control block with a single memory allocation. In contrast, the declaration
std::shared_ptr<T> p(new T(Args...))
performs two memory allocations, which may incur unnecessary overhead.alloc
的副本存储控制块的一部分,所以它可以被用来释放它一旦共享和弱引用计数达到零.原文:
A copy of
alloc
is stored as part of the control block so that it can be used to deallocate it once both shared and weak reference counts reach zero.[编辑] 另请参阅
constructs new shared_ptr (公共成员函数) | |
创建一个共享管理一个新的对象的指针,该指针 原文: creates a shared pointer that manages a new object (函数模板) |