std::make_shared
De 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. |
Déclaré dans l'en-tête <memory> | ||
template<class T, class... Args> shared_ptr<T> make_shared( Args... args); | ||
Construit un objet de type de
T
et l'enveloppe dans un std::shared_ptr utilisant args
que la liste des paramètres pour le constructeur 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.
Sommaire |
[modifier]Paramètres
args | - | Liste des arguments avec lesquels une instance de T sera construite.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. |
[modifier]Retourne la valeur
std::shared_ptr d'une instance de
T
type .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.
[modifier]Exceptions
Peut générer std::bad_alloc ou toute exception lancée par le constructeur de la
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.
[modifier]Notes
Cette fonction alloue de la mémoire pour l'objet T et pour le bloc de contrôle shared_ptr avec une allocation de mémoire unique. En revanche, la déclaration
std::shared_ptr<T> p(new T(Args...))
effectue deux allocations de mémoire, ce qui peut induire une surcharge inutile .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.
[modifier]Exemple
#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;}
Résultat :
11
[modifier]Voir aussi
Construit un nouveau shared_ptr (fonction membre publique) | |
crée un pointeur partagé qui gère un nouvel objet alloué à l'aide d'un allocateur 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. (fonction générique) |