std::allocate_shared
来自cppreference.com
< cpp | memory | shared ptr
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Defined in header <memory>
|
||
| template< class T, class Alloc, class... Args > shared_ptr<T> allocate_shared( const Alloc& alloc, Args... args ); |
||
构造一个对象的类型
T,并把它封装在一个std::shared_ptrargs的构造函数的参数列表的T的Original:
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.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
所有的内存分配是alloc,满足
Allocator要求的副本.Original:
All memory allocation is done using a copy of alloc, which satisfies the
Allocator requirements.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
目录 |
[编辑] 参数
| alloc | - | The Allocator to use.
|
| args... | - | 将兴建的一个实例
T的参数列表.Original: list of arguments with which an instance of T will be constructed.The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[编辑] 返回值
std::shared_ptr的一个实例的类型
T.Original:
std::shared_ptr of an instance of type
T.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 例外
可投掷抛出的异常Alloc::allocate()或从构造的
T.Original:
Can throw the exceptions thrown from Alloc::allocate() or from the constructor of
T.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 注释
这个函数分配的内存为T的对象,并为与一个内存分配的shared_ptr的控制块。与此相反,声明
std::shared_ptr<T> p(new T(Args...))执行两个内存分配,这可能会招致不必要的开销.Original:
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.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
alloc的副本存储控制块的一部分,所以它可以被用来释放它一旦共享和弱引用计数达到零.Original:
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.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 另请参阅
constructs new shared_ptr (公共成员函数) | |
| 创建一个共享管理一个新的对象的指针,该指针 Original: creates a shared pointer that manages a new object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (函数模板) | |