어떤 C 스마트 포인터 구현을 사용할 수 있나요? C 03 std::auto_ptr: 제한된 가비지 수집, 할당된 배열을 보유할 수 없음 object,不支持拷贝,已废弃。 std::auto_ptr_ref: 복사 및 할당을 위해 std::auto_ptr과 함께 사용되는 스마트 포인터가 아닙니다. C 11 std::unique_ptr: std::auto_ptr을 대체하고 성능이 향상되었으며 배열과 함께 작동하고 STL 컨테이너에서 사용할 수 있습니다. std::shared_ptr: 참조 카운트 스마트 포인터는 여러 소유자가 공유할 수 있으며 스레드로부터 안전합니다. std::weak_ptr: std::shared_ptr이 소유한 객체에 대한 참조는 방지하지 않습니다. 삭제. Boost boost::shared_ptr: 표준을 준수하는 공유 PTR, 사용하기 쉽습니다. , 일부에서는 높은 오버헤드 케이스. boost::weak_ptr: 표준을 준수하는 약한_ptr은 Boost::shared_ptr에 대한 비소유 참조를 허용합니다. boost::scoped_ptr: std::unique_ptr과 유사하며 Boost::shared_ptr보다 오버헤드가 적습니다. STL 컨테이너에서는 사용할 수 없습니다. boost::intrusive_ptr: 자신만의 스마트 포인터 호환 클래스를 만들기 위한 사용자 정의 가능한 스마트 포인터. boost::shared_array : 배열용 Shared_ptr은 동적 배열 할당을 지원하며 삭제. boost::scoped_array: 복사할 수 없는 배열의 Scoped_ptr은 STL에서 사용할 수 없습니다. 컨테이너. Qt QPointer: QObject 및 파생 클래스에 대한 약한 스마트 포인터는 강한 포인터. QSharedDataPointer: 강력한 스마트 포인터, 수동 참조 계산 필요, QSharedData의 하위 클래스화 가능. QExplicitlySharedDataPointer: QSharedDataPointer와 유사, 더 많은 제어 제공 ~ 위에 분리. QSharedPointer: 원자 참조 계산, 스레드 안전, 사용자 정의 가능한 삭제, 높은 오버헤드. QWeakPointer: 다음과 함께 사용되는 약한 스마트 포인터 순환을 방지하는 QSharedPointer QScopedPointer: 단일 소유자 스마트 포인터, QSharedPointer보다 오버헤드가 적습니다.