사용 가능한 C 스마트 포인터 구현 및 비교
C 03
-
std::auto_ptr: 향후 C 표준에서는 더 이상 사용되지 않습니다. 제한된 가비지 수집, 소유권 문제 및 STL 컨테이너에서의 사용 불가.
-
std::auto_ptr_ref: 진정한 스마트 포인터가 아닙니다. 복사 및 할당을 허용하기 위해 std::auto_ptr과 함께 사용됩니다.
C 11
-
std::unique_ptr: std::auto_ptr을 대체합니다. std::auto_ptr의 약점을 수정하여 배열 작업, lvalue 보호 및 STL 컨테이너에서의 사용을 허용합니다.
-
std::shared_ptr: 참조 계산 스마트 포인터. 앨리어싱 및 포인터 연산을 지원합니다.
-
std::weak_ptr: std::shared_ptr이 소유한 객체에 대한 비소유 참조입니다. 무기한 순환 참조 카운트를 방지합니다.
Boost
-
boost::shared_ptr: 인기 있는 공유 참조 카운트 스마트 포인터입니다. 높은 성능과 다양성.
-
boost::weak_ptr: Boost::shared_ptr에 대한 비소유 참조.
-
boost::scoped_ptr: Boost::shared_ptr에 대한 간단한 스마트 포인터 대안 오버헤드.
-
boost::intrusive_ptr: 자신만의 스마트 포인터 호환 클래스를 생성하기 위한 사용자 정의 스마트 포인터.
-
boost::shared_array: 공유 스마트 포인터 배열.
-
boost::scoped_array: 복사할 수 없는 배열용 스마트 포인터.
Qt
-
QPointer: 약한 스마트 포인터 QObject 및 파생 클래스. 더 이상 사용되지 않습니다.
-
QSharedDataPointer: 스레드 안전성을 갖춘 Boost::intrusive_ptr과 비교할 수 있는 강력한 스마트 포인터.
-
QExplicitlySharedDataPointer: 향상된 QSharedDataPointer 버전 2.0 통제하다 분리.
-
QSharedPointer: 원자 참조 카운팅, 스레드 안전, 공유 가능 스마트 포인터.
-
QWeakPointer: QSharedPointer.
-
QScopedPointer: Boost::scoped_ptr 기반의 단일 소유자 스마트 포인터로 예외로부터 안전한 코드 및 호환성에 적합합니다.
위 내용은 어떤 C 스마트 포인터를 선택해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!