>  기사  >  백엔드 개발  >  C는 `std::shared_ptr`의 비원자적 등가물을 제공합니까?

C는 `std::shared_ptr`의 비원자적 등가물을 제공합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-27 16:28:01504검색

Does C   Provide a Non-Atomic Equivalent of `std::shared_ptr`?

std::shared_ptr의 원자 버전이 없습니다

질문: std::: shared_ptr이 표준 라이브러리 외부에 존재합니까? C 11에 비원자 버전이 포함되지 않은 이유는 무엇입니까?

답변:

1. 비원자적 등가

std::shared_ptr은 표준 라이브러리의 다른 스마트 포인터와 달리 원자적입니다. 타사 대안이 있을 수 있지만 표준 자체는 비원자적 버전을 제공하지 않습니다.

2. C 11에서 제외

비원자 std::shared_ptr의 포함은 C 11 Rapperswil 회의에서 논의되었습니다. 포함에 반대하는 주장은 다음과 같습니다.

  • 비원자 버전을 사용하는 코드가 나중에 스레드 코드에서 사용되어 감지되지 않은 문제가 발생할 가능성이 있습니다.
  • "유니버설 버전을 사용하는 것의 이점 " shared_ptr, 사용된 기능에 관계없음.
  • 원자성이 성능에 미치는 영향을 최소화하고 이동 생성 및 할당으로 완화합니다.
  • 사용자가 자신만의 비원자 참조 카운트 스마트 포인터를 구현할 수 있는 기능

고려 끝에 LWG는 명확한 합의가 부족하고 장점이 단점보다 크지 않다는 이유로 비원자 std::shared_ptr에 대한 제안을 궁극적으로 거부했습니다.

위 내용은 C는 `std::shared_ptr`의 비원자적 등가물을 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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