>백엔드 개발 >C++ >`std::shared_ptr`에 배열 삭제에 대한 전문화가 없는 이유는 무엇입니까?

`std::shared_ptr`에 배열 삭제에 대한 전문화가 없는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-12 21:22:02501검색

Why Doesn't `std::shared_ptr` Have a Specialization for Array Deletion?

왜 std::shared_ptr 전문화되지 않은 상태로 남겨두었습니다

배열의 소멸자에서 delete[]를 적절하게 호출하는 std::unique_ptr과 달리 std::shared_ptr에는 비슷한 전문화가 부족합니다. 결과적으로 사용자는 배열을 올바르게 할당 해제하는 삭제기를 수동으로 제공해야 합니다.

감독 이유

std::shared_ptr 전문화는 감독이 아닌 것처럼 보일 수 있으며, 이는 다음과 같은 여러 요인으로 인해 발생합니다.

  • 논란의 부족: 논란을 촉발한 std::copy_if와 달리 std::shared_ptr의 부재는 큰 논쟁을 불러일으키지 못했습니다.
  • 기회를 놓쳤습니다: C 위원회 내 논의에도 불구하고 std에서 어레이 지원의 필요성을 해결하기 위한 공식적인 제안은 제출되지 않았습니다:: shared_ptr.

최근 개발

std::shared_ptr에 대한 어레이 지원에 대한 새로운 관심이 대두되어 초안 기술 사양(TS)이 작성되었습니다. . 이 TS(n4077.html)는 shared_ptr의 기능을 어레이로 확장하는 메커니즘을 제안합니다.

현재 상태 및 향후 전망

TS 초안은 C의 일부로 승인되었습니다. 17, std::shared_ptr의 배열 처리에 대한 공식 지원을 제공합니다. 이 기능 향상을 통해 원활한 어레이 관리가 가능해지고 프로그래머의 메모리 할당 작업이 단순화됩니다.

위 내용은 `std::shared_ptr`에 배열 삭제에 대한 전문화가 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.