> 백엔드 개발 > C++ > C 11에서 Copy-on-Write std::string 구현이 합법적인가요?

C 11에서 Copy-on-Write std::string 구현이 합법적인가요?

Barbara Streisand
풀어 주다: 2024-12-20 00:43:09
원래의
892명이 탐색했습니다.

Is a Copy-on-Write std::string Implementation Legal in C  11?

C 11에서 COW(기록 중 복사) std::string 구현의 합법성

COW가 C 11에서 표준을 준수하는 std::string을 구현하기 위한 실행 가능한 기술이 아니기 때문에 최근 논의로 인해 불확실성이 높아졌습니다. 다음은 새로운 표준을 기반으로 이 가정의 타당성을 살펴봅니다.

C 11의 COW 기반 std::string 구현 금지

C 11은 COW를 명시적으로 금지합니다. std::string의 기반 구현. 이 제한 사항은 특정 상황에서만 반복자/참조의 무효화를 허용하는 표준의 섹션 21.4.1 p6에 명시되어 있습니다.

  • 비 참조에 대한 참조를 허용하는 표준 라이브러리 함수에 대한 인수 -const basic_string.
  • 연산자[]를 제외하고 const가 아닌 멤버 함수 호출, at, front, back, start, rbegin, end, rend.

COW 문자열에서 상수가 아닌 연산자[]를 호출하려면 앞서 언급한 단락에서 금지된 복사본을 만들어야 합니다(참조 무효화). 결과적으로 이러한 제약으로 인해 C 11에서는 COW 문자열이 금지됩니다.

위 내용은 C 11에서 Copy-on-Write std::string 구현이 합법적인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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