shared_ptr也可不持有对象,该情况下称它为空 (empty)(若以别名使用构造函数创建,空shared_ptr可拥有非空的存储指针)。 shared_ptr的所有特化都满足可复制构造(CopyConstructible)、可复制赋值(CopyAssignable)和可小于比较(LessThanComparable)的要求,并可按语境转换为bool。
std::shared_ptr 是一种通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可持有同一对象。下列情况之一出现时销毁对象并解分配其内存: 最后剩下的持有对象的 shared_ptr 被销毁; 最后剩下的持有对象的 shared_ptr 被通过 operator= 或reset() 赋值为另一指针。 用delete 表达式或在构造期间提供给...
shared_ptr(Y*ptr, Deleter d, Alloc alloc); (6) template<classDeleter,classAlloc> shared_ptr(std::nullptr_tptr, Deleter d, Alloc alloc); (7) template<classY> shared_ptr(constshared_ptr<Y>&r, element_type*ptr)noexcept; (8) template<classY> ...
std::shared_ptr<T>::reset voidreset()noexcept; (1)(since C++11) template<classY> voidreset(Y*ptr); (2)(since C++11) template<classY,classDeleter> voidreset(Y*ptr, Deleter d); (3)(since C++11) template<classY,classDeleter,classAlloc> ...
[3] https://en.cppreference.com/w/cpp/memory/shared_ptr/get[4] https://en.cppreference.com/w/cpp/language/copy_elision[5] https://www.boost.org/doc/libs/1_76_0/libs/rational/[6] https://www.boost.org/doc/libs/1_76_0/libs/utility/operators.htm...
unique_ptr(C++11) shared_ptr(C++11) Biblioteca de utilitários gerais Objectos de função−hash(C++11) Funções utilitárias pair−tuple(C++11) optional(C++17)−any(C++17) variant(C++17) Conversões de string(C++17) Formatting(C++20) ...
Original: hash support for std::unique_ptr The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe générique spécialisée) [edit] std::hash<std::shared_ptr> (C++11) Support du hachage pour std...
weak_ptr std::shared_ptr<int> sp = std::make_shared<int>(42); std::weak_ptr<int> wp = sp; // 检查引用对象是否存在 if (auto locked = wp.lock()) { std::cout << *locked << std::endl; // 输出: 42 } else { std::cout << "对象已被销毁" << std::endl; } // 检查是...
std::hash<std::unique_ptr> (C++11) Hash-Unterstützung für std::unique_ptr (class Template-Spezialisierung) [edit] std::hash<std::shared_ptr> (C++11) Hash-Unterstützung für std::shared_ptr (class Template-Spezialisierung) [edit] std::hash<std::type_index> (C++11) Ha...
shared_ptr Reference-counted smart pointer. Use when you want to assign one raw pointer to multiple owners, for example, when you return a copy of a pointer from a container but want to keep the original. The raw pointer is not deleted until all shared_ptr owners have gone out of scope...