std::shared_ptr<T>::unique
声明
C++17 中已弃用,C++20 中已移除
bool unique() const noexcept;
检查 *this
是否是管理当前对象的唯一 shared_ptr
实例,即 use_count() == 1
。
参数
(无)
返回值
如果 *this
是管理当前对象的唯一 shared_ptr
实例,则为 true
,否则为 false
。
备注
此函数在 C++17 中已弃用,在 C++20 中已移除,因为在多线程环境中 use_count
仅为近似值(请参阅 use_count
中的说明
)。
示例
#include <memory>
#include <iostream>
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';
}
可能结果
sp1.unique() == true
sp1.unique() == false