std::shared_ptr<T>::unique
Von cppreference.com
< cpp | memory | shared ptr
| 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
Führen Sie diesen Code aus
#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) |