문서 P0122R 로부터 (2016년 2월 12일) 도서관 발전 워킹 그룹 (LEWG)는
공식적 유형의 이름을 변경 array_view
하는 방법에 대해span
:
변경 로그
R0에서 변경
- 코나 회의에서 제안되는 유형의 이름을 LEWG의 피드백
array_view
을 span
따르는 것으로 변경했습니다 .
- [...]
우리는 또한 읽을 수 있습니다 :
표준에 미치는 영향
이 제안은 순수한 라이브러리 확장입니다. 표준 클래스, 함수 또는 헤더를 변경할 필요가 없습니다. P0257byte
에서 제안 된 유형 앨리어싱 동작 의 유형 및 변경 사항 에 따라 달라질 수 있다면 개선 될 것 입니다.
그러나-채택 된 경우-이 새로운 유형에 대해 일부 표준 라이브러리 함수를 오버로드하는 것이 유용 할 수 있습니다 (예 :) copy()
.
span
표준 C ++ (C ++ 11)로 구현되었으며 C ++ 코드 용 상용 정적 분석 도구 및 상용 사무용 생산성 소프트웨어 내에서 성공적으로 사용되고 있습니다. 오픈 소스 참조 구현은 https://github.com/Microsoft/GSL 에서 사용할 수 있습니다 .
다음 장에서이 문서는 읽기 전용 및 읽기-쓰기 ( 변경 가능 ) 액세스를 제공합니다.
요소 유형 및 변환
span
ValueType
추상 클래스 유형이 아닌 완전한 객체 유형이어야하는 템플릿 매개 변수를 통해 요소 유형으로 구성되어야합니다 .
span
캡슐화하는 시퀀스에 대한 읽기 전용 또는 변경 가능한 액세스를 지원합니다. 읽기 전용 데이터에 액세스하기 위해 사용자는를 선언 할 수 있으며 span<const T>
변경 가능한 데이터에 대한 액세스는 span<T>
.
[...]
가이드 라인 지원 라이브러리 검토 :span<T>
Marius Bancila (2016 년 3 월) span
에서 다음과 같이 정의하는 내용도 참조하세요 .
가이드 라인 지원 라이브러리 에 설명 종류와 일부 기능의 Microsoft 구현 한 C ++ 핵심 가이드 라인
에 의해 유지 관리 표준 C ++ 재단 . GSL에서 제공하는 유형 중 span<T>
이전에는 array_view<T>
.
span<T>
포인터 (및 크기 카운터) 또는 표준 컨테이너 ( std::vector
또는 등) 대신 사용하도록 권장되는 소유하지 않는 연속 메모리 범위입니다 std::array
.