Namespaces
Variants
Views
Actions

std::owner_less

From cppreference.com
< cpp‎ | memory
 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
Dynamic memory management
Uninitialized memory algorithms
(C++17)
(C++17)
(C++20)
(C++17)
Constrained uninitialized
memory algorithms
C Library

Allocators
Memory resources
Garbage collection support
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
(C++11)(until C++23)
Uninitialized storage
(until C++20*)
(until C++20*)
Explicit lifetime management
 
Defined in header <memory>
template<>
struct owner_less<void>;
(since C++17)

std::owner_less<void> is a specialization of std::owner_less with parameter types deduced.

Contents

[edit] Nested types

Nested type Definition
is_transparent unspecified

[edit] Member functions

operator()
compares its arguments using owner-based semantics
(function)

std::owner_less<void>::operator()

template< class T, class U >

bool operator()( const std::shared_ptr<T>& lhs,

                 const std::shared_ptr<U>& rhs ) const noexcept;
(since C++17)
template< class T, class U >

bool operator()( const std::shared_ptr<T>& lhs,

                 const std::weak_ptr<U>& rhs ) const noexcept;
(since C++17)
template< class T, class U >

bool operator()( const std::weak_ptr<T>& lhs,

                 const std::shared_ptr<U>& rhs ) const noexcept;
(since C++17)
template< class T, class U >

bool operator()( const std::weak_ptr<T>& lhs,

                 const std::weak_ptr<U>& rhs ) const noexcept;
(since C++17)

Compares lhs and rhs using owner-based semantics. Effectively calls lhs.owner_before(rhs).

The ordering is strict weak ordering relation.

lhs and rhs are equivalent only if they are both empty or share ownership.

Parameters

lhs, rhs - shared-ownership pointers to compare

Return value

true if lhs is less than rhs as determined by the owner-based ordering.

[edit] Notes

Feature-test macro Value Std Feature
__cpp_lib_transparent_operators 201510L (C++17) Transparent std::owner_less (std::owner_less<void>)

[edit] See also

provides owner-based ordering of shared pointers
(public member function of std::shared_ptr<T>) [edit]
provides owner-based ordering of weak pointers
(public member function of std::weak_ptr<T>) [edit]