- memory[meta header]
- std[meta namespace]
- weak_ptr[meta class]
- function[meta id-type]
- cpp11[meta cpp]
bool
expired() const noexcept; // (1) C++11
constexpr bool
expired() const noexcept; // (1) C++26監視している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: 4.3.6 [mark verified]
- Clang: 3.0 [mark verified]
- ICC: ?
- Visual C++: ?