◐ Shell
clean mode source ↗

std::make_shared - cppreference.com

De cppreference.com

<metanoindex/>

<tbody> </tbody>

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.

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.

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.
You can help to correct and verify the translation. Click here for instructions.


(modelo de função) [edit]