Namespaces
Variants

std:: owner_equal

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (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)
(C++11) (until C++23)
헤더 파일에 정의됨 <memory>
struct owner_equal ;
(C++26부터)

이 함수 객체는 std::weak_ptr std::shared_ptr 모두에 대해 값 기반이 아닌 소유자 기반의 혼합 타입 동등 비교를 제공합니다. 이 비교는 두 스마트 포인터가 모두 비어 있거나 동일한 소유권을 공유하는 경우에만 동등한 것으로 판단하며, get() 로 얻은 원시 포인터 값이 다르더라도 (예: 동일한 객체 내의 다른 서브객체를 가리키는 경우) 마찬가지입니다.

1) 소유자 기반 혼합 타입 동등 비교는 std::shared_ptr std::weak_ptr 이외의 타입에 대해서는 제공되지 않습니다.
2) std::shared_ptr std::weak_ptr 의 소유자 기반 혼합 타입 동등 비교.
이는 std::shared_ptr std::weak_ptr 을 키로 사용하고 std::owner_hash 와 함께 비정렬 연관 컨테이너를 구축할 때 선호되는 비교 술어입니다. 즉, std:: unordered_map < std:: shared_ptr < T > , U, std :: owner_hash , std :: owner_equal > 또는 std:: unordered_map < std:: weak_ptr < T > , U, std :: owner_hash , std :: owner_equal > 와 같은 경우입니다.
3) std::owner_equal 는 인수로부터 매개변수 타입을 추론합니다.

목차

중첩 타입

중첩 타입 정의
is_transparent unspecified

멤버 함수

operator()
인자를 소유자 기반 의미론을 사용하여 비교합니다
(함수)

std::owner_equal:: operator()

template < class T, class U >

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

const std:: shared_ptr < U > & rhs ) const noexcept ;
(C++26부터)
template < class T, class U >

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

const std:: weak_ptr < U > & rhs ) const noexcept ;
(C++26부터)
template < class T, class U >

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

const std:: shared_ptr < U > & rhs ) const noexcept ;
(C++26부터)
template < class T, class U >

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

const std:: weak_ptr < U > & rhs ) const noexcept ;
(C++26부터)

lhs rhs 를 소유자 기반 의미론을 사용하여 비교합니다. 효과적으로 lhs. owner_equal ( rhs ) 를 호출합니다.

동등 비교는 동치 관계입니다.

lhs rhs 는 둘 다 비어 있거나 소유권을 공유하는 경우에만 동등합니다.

매개변수

lhs, rhs - 비교할 공유 소유권 포인터

반환값

true - lhs rhs 가 모두 비어 있거나 소유자 기반 동등 비교에 의해 결정된 대로 소유권을 공유하는 경우, false - 그렇지 않은 경우.

참고 사항

기능 테스트 매크로 표준 기능
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) 비정렬 연관 컨테이너 에서 std::shared_ptr std::weak_ptr 를 키로 사용할 수 있도록 함

참고 항목

shared pointer의 소유자 기반 동등 비교를 제공함
( std::shared_ptr<T> 의 public member function)
weak pointer의 소유자 기반 동등 비교를 제공함
( std::weak_ptr<T> 의 public member function)