long use_count() const noexcept;
概要
所有権を持つユーザー数を取得する。
戻り値
*this
が持つリソースを共有しているshared_ptr
のオブジェクト数を返す。
0
が返る場合、*this
は空の状態となる。
同期
しない
備考
複数スレッドがuse_count()
の戻り値に影響を与える場合、その戻り値は、おおよその値として扱われるべきである。この関数はスレッド間での同期をしないため、正確な値を求めてはならない。
例
#include <iostream>
#include <memory>
int main()
{
std::shared_ptr<int> p(new int(3));
std::shared_ptr<int> q = p;
long count = p.use_count();
std::cout << count << std::endl;
}
出力
2
バージョン
言語
- C++11
処理系
- GCC: 4.4.7 ✅
- Clang: 3.0 ✅
- ICC: ?
- Visual C++: 2008 (TR1) ✅, 2010 ✅, 2012 ✅, 2013 ✅