- memory[meta header]
- std[meta namespace]
- weak_ptr[meta class]
- function[meta id-type]
- cpp11[meta cpp]
bool expired() const noexcept;監視しているshared_ptrオブジェクトの寿命・リンクが切れたかを判定する。
use_count() == 0- use_count()[link use_count.md]
この関数は、実際にはuse_count() == 0で判定するよりも、高速に実装される可能性がある。
#include <cassert>
#include <memory>
int main()
{
std::weak_ptr<int> wp;
// 監視対象とリンクしていない
assert(wp.expired());
{
std::shared_ptr<int> sp(new int(3));
// shared_ptrオブジェクトspを監視する
wp = sp;
// shared_ptrオブジェクトの寿命は切れていない
assert(!wp.expired());
}
// shared_ptrオブジェクトの寿命が切れた
assert(wp.expired());
}- expired()[color ff0000]
- C++11
- GCC, C++11 mode: 4.3.6
- Clang libc++, C++11 mode: 3.0
- ICC: ?
- Visual C++: ?