Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Przechowuje wskaźnik do posiadanego obiektu.Obiekt nie jest własnością żadnego innego unique_ptr.Obiekt jest niszczony, kiedy niszczony jest unique_ptr.
template< class Type, class Del = default_delete<Type> >
class unique_ptr {
public:
unique_ptr( );
unique_ptr( nullptr_t Nptr );
explicit unique_ptr( pointer Ptr );
unique_ptr( pointer Ptr,
typename conditional<is_reference<Del>::value,
Del,
typename add_reference<const Del>::type>::type Deleter);
unique_ptr (pointer Ptr,
typename remove_reference<Del>::type&& Deleter);
unique_ptr (unique_ptr&& Right);
template<class Type2, Class Del2> unique_ptr( unique_ptr<Type2, Del2>&& Right );
unique_ptr( const unique_ptr& Right) = delete;
unique_ptr& operator=(const unique_ptr& Right ) = delete;
};
Parametry
Right
Element unique_ptr.Nptr
Wartość rvalue typu std::nullptr_t.Ptr
Element pointer.Deleter
Funkcja deleter, która jest powiązana z unique_ptr.
Wyjątki
Żadne wyjątki nie są generowane przez unique_ptr.
Uwagi
Klasa unique_ptr zastępuje auto_ptr i może być używana jako element kontenerów STL.
Używaj funkcji pomocnika make_unique, aby skutecznie tworzyć nowe wystąpienia unique_ptr.
unique_ptr jednoznacznie zarządza zasobem.Każdy obiekt unique_ptr przechowuje wskaźnik do obiektu, którego jest właścicielem, lub przechowuje wskaźnik zerowy.Zasób może być własnością tylko jednego obiektu unique_ptr; podczas niszczenia obiektu unique_ptr, który posiada określony zasób, zasób zostanie zwolniony.Obiekt unique_ptr można przenosić, ale nie można go kopiować; aby uzyskać więcej informacji, zobacz Deklarator odwołania do wartości R: &&.
Zasób jest zwalniany przez wywołanie przechowywanego obiektu deleter typu Del, który wie, jak zasoby są przydzielane dla danego unique_ptr.Domyślnie deleterdefault_delete<Type> zakłada, że zasób wskazywany przez _Ptr jest przydzielany z new i że może być zwolniony przez wywołanie delete _Ptr. (Częściowa specjalizacja **unique_ptr<Type[]>**zarządza obiektami tablicy przydzielonymi przez new[] i ma domyślny deleterdefault_delete<Type[]>, wyspecjalizowany w celu wywoływania delete[] _Ptr.)
Przechowywany wskaźnik do zasobu będącego własnością, stored_ptr ma typ pointer.Jest to Del::pointer, jeśli zdefiniowany, i Type * , jeśli nie.Przechowywany obiekt deleterstored_deleter nie zajmuje miejsca w obiekcie, jeśli deleter jest bezstanowy.Należy zauważyć, że Del może być typem odwołania.
Elementy członkowskie
Konstruktory
Istnieje siedem konstruktorów unique_ptr. |
Typedefs
Synonim dla parametru szablonu Del. |
|
Synonim dla parametru szablonu Type. |
|
Jest to synonim Del::pointer, jeśli jest zdefiniowany, w przeciwnym razie Type *. |
Funkcje elementów członkowskich
Zwraca stored_ptr. |
|
Zwraca odwołanie do stored_deleter. |
|
przechowuje pointer() w stored_ptr i zwraca jego poprzednią zawartość. |
|
Zwalnia aktualnie posiadany zasób i akceptuje nowy zasób. |
|
Wymienia zasób i deleter na dostarczony unique_ptr. |
Operatory
operator bool |
Operator zwraca wartość typu, który jest konwertowany na bool.Wynik konwersji na bool jest true, gdy get() != pointer(), w przeciwnym razie false. |
operator-> |
Funkcja elementu członkowskiego zwraca stored_ptr. |
operator* |
Funkcja elementu członkowskiego zwraca *stored_ptr. |
Przypisuje wartość unique_ptr (lub pointer-type) do bieżącego unique_ptr. |
Wymagania
Nagłówek: <memory>
Przestrzeń nazw: std