- memory[meta header]
- std[meta namespace]
- owner_less[meta class]
- function[meta id-type]
- cpp11[meta cpp]
// shared_ptr特殊化版
bool operator()(const shared_ptr<T>& a, const shared_ptr<T>& b) const; // (1) C++11
bool operator()(const shared_ptr<T>& a, const shared_ptr<T>& b) const noexcept; // (1) C++17
bool operator()(const shared_ptr<T>& a, const weak_ptr<T>& b) const; // (2) C++11
bool operator()(const shared_ptr<T>& a, const weak_ptr<T>& b) const noexcept; // (2) C++17
bool operator()(const weak_ptr<T>& a, const shared_ptr<T>& b) const; // (3) C++11
bool operator()(const weak_ptr<T>& a, const shared_ptr<T>& b) const noexcept; // (3) C++17
// weak_ptr特殊化版
bool operator()(const weak_ptr<T>& a, const weak_ptr<T>& b) const; // (4) C++11
bool operator()(const weak_ptr<T>& a, const weak_ptr<T>& b) const noexcept; // (4) C++17
bool operator()(const shared_ptr<T>& a, const weak_ptr<T>& b) const; // (5) C++11
bool operator()(const shared_ptr<T>& a, const weak_ptr<T>& b) const noexcept; // (5) C++17
bool operator()(const weak_ptr<T>& a, const shared_ptr<T>& b) const; // (6) C++11
bool operator()(const weak_ptr<T>& a, const shared_ptr<T>& b) const noexcept; // (6) C++17
// void特殊化版
template<class T, class U>
bool operator()(const shared_ptr<T>&, const shared_ptr<U>&) const noexcept; // (7) C++17
template<class T, class U>
bool operator()(const shared_ptr<T>&, const weak_ptr<U>&) const noexcept; // (8) C++17
template<class T, class U>
bool operator()(const weak_ptr<T>&, const shared_ptr<U>&) const noexcept; // (9) C++17
template<class T, class U>
bool operator()(const weak_ptr<T>&, const weak_ptr<U>&) const noexcept; // (10) C++17
- shared_ptr[link /reference/memory/shared_ptr.md]
- weak_ptr[link /reference/memory/weak_ptr.md]
所有権ベースでの小なり比較を行う。
a.owner_before(b)
- owner_before[link /reference/memory/shared_ptr/owner_before.md]
- C++11