>  기사  >  백엔드 개발  >  초기 C 11 초안에서 암시적 이동 의미 체계를 생략한 이유는 무엇입니까?

초기 C 11 초안에서 암시적 이동 의미 체계를 생략한 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-17 22:08:01911검색

Why Did Early C  11 Drafts Omit Implicit Move Semantics?

초기 C 11 초안의 자동 이동 의미 체계 부족

주로 POD 유형 및 STL 컨테이너를 사용하는 프로그래머로서 명시적 할당 작성 연산자와 복사 생성자는 기본 구현으로 인해 거의 불필요합니다. 그러나 C 11 표준의 초기 초안에 자동 이동 의미 체계가 없기 때문에 사용 편의성과 안전성에 대한 우려가 제기되었습니다.

이동 생성자와 할당 연산자의 암시적 생성은 많은 논쟁과 수정의 주제였습니다. C 표준. 초기 초안에서는 이러한 의미 체계가 자동으로 제공되지 않았기 때문에 추가 코딩 작업 없이 이동 기능을 활용하려는 프로그래머에게 어려움이 있었습니다.

현재 사양(N3225)은 암시적 이동 생성에 대해 더 엄격한 조건을 제공합니다. 암시적으로 선언된 이동 생성자를 가지려면 클래스 X가 다음을 포함한 여러 기준을 충족해야 합니다.

  • 사용자 선언 복사 생성자, 복사 할당 연산자, 이동 할당 연산자 또는 소멸자가 없습니다
  • 이동 생성자가 암시적으로 삭제된 것으로 정의되는 것을 방지하는 특정 조건을 충족

암시적 이동에도 유사한 언어가 적용됩니다. 할당 연산자. 이러한 제한 사항은 암시적 의미 체계와 사용자 정의 의미 체계 간의 잠재적인 충돌과 이동 의미 체계의 오용에 대한 우려를 해결하기 위해 도입되었습니다.

초기 C 11 초안에는 암시적 이동 의미 체계가 부족하여 프로그래머가 이러한 기능을 수동으로 구현해야 했습니다. 이동 기능을 활용하려는 경우. 그러나 이후 표준 개정판에서는 이 문제를 해결하여 암시적 이동 생성을 더욱 광범위하게 사용할 수 있게 하고 객체 소유권 관리를 위한 이동 의미론 사용을 단순화했습니다.

위 내용은 초기 C 11 초안에서 암시적 이동 의미 체계를 생략한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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