# std::shared_ptr<T>::unique

< cpp‎ | memory‎ | shared ptr

bool unique() const noexcept; |  | (C++17 中弃用) (C++20 中移除)

检查 *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

### 参阅

use_count | 返回 `shared_ptr` 所指对象的引用计数 (公开成员函数)