std::experimental:: observer_ptr
From cppreference.net
<
cpp
|
experimental
|
헤더 파일에 정의됨
<experimental/memory>
|
||
|
template
<
class
W
>
class observer_ptr ; |
(라이브러리 fundamentals TS v2) | |
std::experimental::observer_ptr
는 비소유 포인터, 즉
관찰자(observer)
입니다. 관찰자는 두 번째 객체에 대한 포인터를 저장하며, 이 객체를
관찰 대상 객체(watched object)
라고 합니다.
observer_ptr
은 관찰 대상 객체가 없을 수도 있습니다.
관찰자는 관찰 대상 객체에 대해 어떤 식으로도 책임을 지지 않습니다. 관찰자와 그것이 관찰하는 객체 사이에는 본질적인 관계가 존재하지 않습니다.
이는 원시 포인터 타입을 거의 대체할 수 있도록 설계되었으며, 어휘 타입으로서 코드 독해자가 상세한 분석 없이도 의도된 사용법을 파악할 수 있다는 장점이 있습니다.
observer_ptr
의 특수화는
CopyConstructible
및
CopyAssignable
요구 사항을 충족합니다.
| 타입 요구사항 | ||
-
W
는 참조 타입이 아니어야 하지만, 불완전 타입일 수 있습니다.
|
목차 |
멤버 타입
| 멤버 타입 | 정의 |
| element_type |
W
, 이
observer_ptr
가 관찰하는 객체의 타입
|
멤버 함수
새로운
observer_ptr
를 생성함
(public member function) |
|
|
(destructor)
(implicitly declared)
|
observer_ptr
를 파괴함
(public member function) |
|
operator=
(implicitly declared)
|
저장된 포인터를 할당하는 암시적으로 선언된 복사 및 이동 할당 연산자
(public member function) |
수정자 |
|
|
감시 중인 객체에 대한 포인터를 반환하고 객체 감시를 중지함
(public member function) |
|
|
감시 중인 객체를 교체함
(public member function) |
|
|
감시 중인 객체들을 교환함
(public member function) |
|
관찰자 |
|
|
감시 중인 객체에 대한 포인터를 반환함
(public member function) |
|
|
연관된 감시 객체가 있는지 확인함
(public member function) |
|
|
감시 중인 객체에 대한 포인터를 역참조함
(public member function) |
|
변환 |
|
|
저장된 포인터로의 명시적 변환 함수
(public member function) |
|
비멤버 함수
객체를 관찰하는
observer_ptr
을 생성합니다
(함수 템플릿) |
|
다른
observer_ptr
또는
nullptr
와 비교합니다
(함수 템플릿) |
|
swap
알고리즘을 특수화합니다
(함수 템플릿) |
헬퍼 클래스
observer_ptr
에 대한 해시 지원
(클래스 템플릿 특수화) |
예제
|
이 섹션은 불완전합니다
이유: 예시가 없음 |