Namensräume
Varianten
Aktionen

std::shared_ptr<T>::unique

Von cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
bool unique() const noexcept;
(veraltet in C++17)
(in C++20 entfernt)

Prüft, ob *this die einzige shared_ptr-Instanz ist, die das aktuelle Objekt verwaltet, d.h. ob use_count() == 1.

Inhalt

[edit] Parameter

(keine)

[edit] Rückgabewert

true, wenn *this die einzige shared_ptr-Instanz ist, die das aktuelle Objekt verwaltet, andernfalls false.

[edit] Anmerkungen

Diese Funktion wurde in C++17 als veraltet markiert und in C++20 entfernt, da use_count() == 1 in einer Multithreading-Umgebung bedeutungslos ist (siehe Anmerkungen in use_count).

[edit] Beispiel

#include <iostream> 
#include <memory> 
 
int main() 
{ 
    auto sp1 = std::make_shared<int>(5);
    std::cout << std::boolalpha;
    std::cout << "sp1.unique() == " << sp1.unique() << '\n'; 
 
    std::shared_ptr<int> sp2 = sp1; 
    std::cout << "sp1.unique() == " << sp1.unique() << '\n'; 
}

Ausgabe

sp1.unique() == true
sp1.unique() == false

[edit] Siehe auch

gibt die Anzahl der shared_ptr-Objekte zurück, die auf dasselbe verwaltete Objekt verweisen
(public member function) [edit]