std::make_shared - cppreference.com
De cppreference.com
<metanoindex/>
<tbody> </tbody>
| Definido no cabeçalho <memory> |
||
|
|
||
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.
Parâmetros
| args | - | lista de argumentos com que uma instância de Original: list of arguments with which an instance of The text has been machine-translated via Google Translate. |
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.
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.
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.
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:
Veja também
constructs new shared_ptr (função pública membro) [edit] | |
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. (modelo de função) [edit] | |