> 백엔드 개발 > C++ > 왜 `std::shared_ptr`에는 C 배열에 대한 전문화가 없나요?

왜 `std::shared_ptr`에는 C 배열에 대한 전문화가 없나요?

DDD
풀어 주다: 2024-11-20 16:18:16
원래의
859명이 탐색했습니다.

Why Doesn't `std::shared_ptr` Have a Specialization for Arrays in C  ?

std::shared_ptr

C에서 std::unique_ptr에는 배열 처리를 위한 템플릿 전문화가 있습니다. , 소멸자에서 delete[]를 적절하게 호출합니다. 그러나 std::shared_ptr에는 그러한 전문화가 존재하지 않습니다.

왜 부재합니까?

처음에는 LWG(C 위원회)에는 그 밖에도 긴급한 문제가 많이 있었습니다. 그러나 공식적인 제안이 없다는 점도 한몫했습니다.

최근 개발

비공식 논의를 통해 문제가 다시 전면에 부각되었고 프로토타입이 구현되었습니다. 그러나 공식적인 제안은 아직 계류 중이다. 일부 LWG 회원은 std::shared_ptr에 대한 배열 지원이 귀중한 추가 기능이 될 것이라고 믿습니다.

현재 상태

C 14 기준으로 전문화 기능이 내장되어 있지 않습니다. std::shared_ptr의 경우. 배열을 처리하려면 delete[]를 호출하는 사용자 정의 삭제기를 제공해야 합니다.

업데이트

2014년에 배열을 추가하는 기술 사양(TS) 초안이 제안되었습니다. std::shared_ptr을 지원합니다. 이 제안은 C 17에서 구현되었습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿