std::make_shared
Da 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. |
Definido no cabeçalho <memory>
|
||
template< class T, class... Args > shared_ptr<T> make_shared( Args... args ); |
||
Constrói um objeto do tipo
T
e quebra-lo em um std::shared_ptr usando args
como a lista de parâmetros para o construtor de 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.
Índice |
[editar] Parâmetros
args | - | lista de argumentos com que uma instância de
T serão construídas .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. |
[editar] Valor de retorno
std::shared_ptr de uma instância de
T
tipo.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.
[editar] Exceções
Pode lançar std::bad_alloc ou qualquer exceção lançada pelo contructor de
T
.Original:
May throw std::bad_alloc or any exception thrown by the contructor 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.
[editar] Notas
Esta função aloca memória para o objeto T e para o bloco de controle shared_ptr com uma alocação de memória único. Em contraste, a declaração
std::shared_ptr<T> p(new T(Args...))
executa duas atribuições de memória, os quais podem implicar uma sobrecarga desnecessária.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.
[editar] Exemplo
#include <iostream> #include <memory> void foo(std::shared_ptr<int> i) { (*i)++; } int main() { auto sp = std::make_shared<int>(10); foo(sp); std::cout << *sp << std::endl; }
Saída:
11
[editar] Veja também
constructs new shared_ptr (função pública membro) | |
cria um ponteiro comum que gere um novo objeto alocado utilizando um alocador Original: creates a shared pointer that manages a new object allocated using an allocator The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (modelo de função) |