std::shared_ptr<T>::operator bool
Von cppreference.com
< cpp | memory | shared ptr
| explicit operator bool() const noexcept; |
||
Prüft, ob *this einen Nicht-Null-Zeiger speichert, d.h. ob get() != nullptr.
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
true, wenn *this einen Zeiger speichert, false andernfalls.
[bearbeiten] Hinweise
Ein leerer shared_ptr (bei dem use_count() = 0) kann einen Nicht-Null-Zeiger speichern, der über get() zugänglich ist, z.B. wenn er mit dem Aliasing-Konstruktor erstellt wurde.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <memory> void report(std::shared_ptr<int> ptr) { if (ptr) std::cout << "*ptr=" << *ptr << "\n"; else std::cout << "ptr is not a valid pointer.\n"; } int main() { std::shared_ptr<int> ptr; report(ptr); ptr = std::make_shared<int>(7); report(ptr); }
Ausgabe
ptr is not a valid pointer. *ptr=7
[bearbeiten] Siehe auch
| gibt den gespeicherten Zeiger zurück (public member function) |