std::make_shared
Aus 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. |
definiert in Header <memory> | ||
template<class T, class... Args> shared_ptr<T> make_shared( Args&&... args); | ||
Erzeugt ein Objekt vom Typ
T
und wickelt es in einem std::shared_ptr mit args
als Parameter-Liste für den Konstruktor 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.
Inhaltsverzeichnis |
[Bearbeiten]Parameter
args | - | Liste der Argumente, mit denen eine Instanz T gebaut werden soll .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. |
[Bearbeiten]Rückgabewert
std::shared_ptr einer Instanz des Typs
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.
[Bearbeiten]Ausnahmen
Kann std::bad_alloc oder eine Ausnahme von der contructor der
T
geworfen werfen .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.
[Bearbeiten]Notes
Diese Funktion Speicher für die T-Objekt und für die shared_ptr der Kontrolle Block mit einem einzigen Speicherzuweisung. Im Gegensatz dazu führt die Erklärung
std::shared_ptr<T> p(new T(Args...))
zwei Speicherzuordnungen, die unnötigen Overhead entstehen können .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.
[Bearbeiten]Beispiel
#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;}
Output:
11
[Bearbeiten]Siehe auch
erzeugt einen neuen shared_ptr (öffentliche Elementfunktion) | |
erzeugt einen shared_ptr , der ein neues Objekt verwaltet, das mittels eines Allokators erzeugt wird. (Funktions-Template) |