Документ P0122R (12.02.2016) від Робочої групи з розвитку бібліотек (LEWG)
офіційно перейменовує тип array_viewнаspan :
Журнал змін
Зміни від R0
- Змінено назву типу, що пропонується,
array_viewна spanнаступний відгук від LEWG на засіданні Kona.
- [...]
Ми також можемо прочитати:
Вплив на стандарт
Ця пропозиція є суто бібліотечним розширенням. Він не вимагає змін у стандартних класах, функціях або заголовках. Це було б посилено, якби це могло залежати від byteтипу та змін поведінки псевдонімів типу, запропонованих у P0257 .
Однак - у разі прийняття - може бути корисно перевантажити деякі стандартні функції бібліотеки для цього нового типу (прикладом може бути copy()).
spanбула впроваджена у стандартній C ++ (C ++ 11) і успішно використовується в комерційному засобі статичного аналізу коду C ++, а також в комерційному програмному забезпеченні продуктивності. Реалізація з відкритим кодом доступна за посиланням https://github.com/Microsoft/GSL .
У наступному розділі ці документи представляють доступ лише для читання та читання та запису ( змінний ):
Типи елементів і перетворення
spanповинен бути налаштований на тип елемента за допомогою параметра шаблону ValueType, який повинен бути повним типом об’єкта, який не є абстрактним типом класу.
spanпідтримує доступ лише для читання або змінний доступ до послідовності, яку він інкапсулює. Для доступу до даних лише для читання користувач може оголосити a span<const T>, а для доступу до змінних даних використовуватиме a span<T>.
[...]
Див. Також Огляд бібліотеки підтримки:span<T> від Маріуса Банчіли (березень 2016 р.), Що визначає spanяк:
Бібліотека підтримки Керівництво є реалізація Microsoft деяких типів і функцій , описаних в Керівництві C ++ Ключових
підтримується Фондом Standard C ++ . Серед типів, наданих GSL, span<T>раніше відомий як array_view<T>.
span<T>- це невласний діапазон суміжної пам'яті, який рекомендується використовувати замість покажчиків (та лічильника розміру) або стандартних контейнерів (таких як std::vectorабо std::array).