참조 카운트 포인터를위한 STL 클래스?
-
19-08-2019 - |
문제
이것은 사소해야하지만 그것을 찾을 수없는 것 같습니다 (그러한 수업이 존재하지 않는 한!)
스마트 포인터의 STL 클래스 (또는 클래스 세트)는 무엇입니까?
업데이트
응답에 감사드립니다.
표준 구현이 없다는 것에 놀랐습니다.
나는 이것을 사용하게되었다 : http://archive.gamedev.net/reference/articles/article1060.asp
해결책
이미 언급 된 TR1 Shared_PTR을 제외하고 STL에는 참조 카운트 포인터가 없습니다.
boost :: shared_ptr을 사용하는 것이 좋습니다 (다운로드 Boost는 충분할 것이고 컴파일 할 것이 없으며 구현은 헤더 전용)입니다.
Loki 라이브러리의 스마트 포인터 (헤더 전용 구현)의 스마트 포인터를 살펴볼 수도 있습니다.
사용 가능한 스마트 포인터에 대한 개요는 참조하십시오 거기.
다른 팁
부스트를 원하지 않거나 사용할 수없는 경우 그리고 컴파일러가 구현됩니다 TR1, 당신이 사용할 수있는 shared_ptr
(부스트에서 빌린) :
#include <tr1/memory>
...
std::tr1::shared_ptr<Foo> ptr(new Foo);
그렇지 않으면 아니요, 제외하고는 스마트 포인터가 없습니다. std::auto_ptr
바닐라 stl에서.
C ++ 11에서 시간이 행진합니다.
std::shared_ptr
std::weak_ptr
등.
COM 객체의 경우 사용하십시오 ccomptr <>.
STL Plus에서 한동안 구현 된 대안이 있습니다. 소스 포지
"STLplus was originally intended as a library to extend the STL by providing missing container data structures such as smart-pointers, matrices, trees and graphs."