Namespaces
Variants

std::experimental:: shared_ptr

From cppreference.net
헤더 파일에 정의됨 <experimental/memory>
template < class T > class shared_ptr ;
(라이브러리 fundamentals TS)

std::experimental::shared_ptr 는 배열 지원 기능을 추가한 std::shared_ptr 의 수정된 버전입니다.

목차

멤버 타입

멤버 타입 정의
element_type std:: remove_extent_t < T >

멤버 함수

새로운 shared_ptr 을 생성함
(public member function)
Observers
저장된 포인터를 반환함
(public member function)
저장된 포인터를 역참조함
(public member function)
배열에 대한 인덱스 접근을 제공함
(public member function)

비멤버 함수

저장된 포인터에 static_cast , dynamic_cast , const_cast , 또는 reinterpret_cast 를 적용합니다
(함수 템플릿)

헬퍼 클래스

std::experimental::shared_ptr 에 대한 해시 지원
(클래스 템플릿 특수화)

std::shared_ptr와 동일한 멤버 및 비멤버

멤버 함수

다음 멤버 함수들은 std::experimental::shared_ptr 대신 std::shared_ptr 을 사용하고, std::experimental::weak_ptr 대신 std::weak_ptr 을 사용합니다. 그 외의 동작은 동일합니다.

소유한 객체를 더 이상 참조하는 shared_ptr 이 없으면 파괴함
( std::shared_ptr<T> 의 public 멤버 함수)
shared_ptr 을 할당함
( std::shared_ptr<T> 의 public 멤버 함수)
수정자
관리되는 객체를 교체함
( std::shared_ptr<T> 의 public 멤버 함수)
관리되는 객체들을 교환함
( std::shared_ptr<T> 의 public 멤버 함수)
관찰자
동일한 관리 객체를 참조하는 shared_ptr 객체의 수를 반환함
( std::shared_ptr<T> 의 public 멤버 함수)
(C++20까지)
관리 객체가 현재 shared_ptr 객체에 의해서만 관리되는지 확인함
( std::shared_ptr<T> 의 public 멤버 함수)
저장된 포인터가 null이 아닌지 확인함
( std::shared_ptr<T> 의 public 멤버 함수)
shared pointer에 대한 소유자 기반 순서 지정을 제공함
( std::shared_ptr<T> 의 public 멤버 함수)

비멤버 함수

이러한 비멤버 함수들은 std::experimental 네임스페이스에서 선언되며, std::shared_ptr 대신 std::experimental::shared_ptr 와 함께 동작하지만, 그 외에는 C++14의 해당 함수와 동일하게 작동합니다.

새로운 객체를 관리하는 shared pointer를 생성합니다
(함수 템플릿)
할당자를 사용하여 할당된 새로운 객체를 관리하는 shared pointer를 생성합니다
(함수 템플릿)
지정된 타입의 삭제자를 반환합니다 (소유 중인 경우)
(함수 템플릿)
(C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20에서 제거됨) (C++20)
다른 shared_ptr 또는 nullptr 와 비교합니다
(함수 템플릿)
저장된 포인터의 값을 출력 스트림에 출력합니다
(함수 템플릿)
std::swap 알고리즘을 특수화합니다
(함수 템플릿)
std::shared_ptr 에 대한 원자 연산을 특수화합니다
(함수 템플릿)

헬퍼 클래스 템플릿

이 클래스 템플릿들은 std::experimental 네임스페이스에 선언되며, std::experimental::shared_ptr std::experimental::weak_ptr 과 함께 동작하지만, std::shared_ptr std::weak_ptr 대신 사용되며, 그 외에는 해당 C++14 클래스 템플릿과 동일하게 동작합니다.

(C++11)
shared 및 weak 포인터의 혼합 타입 소유자 기반 순서화를 제공함
(클래스 템플릿)
객체가 자신을 참조하는 shared_ptr 을 생성할 수 있도록 함
(클래스 템플릿)

예제