Что случилось с std :: cspan? - PullRequest
9 голосов
/ 02 июля 2019

std::span проголосовали в C ++ 20. Я предполагал, что наряду с std::span, псевдоним удобства будет определен так:

template <class T, size_t Extent = dynamic_extent>
using cspan = span<const T, Extent>;

Мне это кажется очень удобным псевдонимом. Я бы, вероятно, использовал cspan чаще, чем span! Согласно cppreference , cspan не существует. Есть одно упоминание о cspan в этой статье , которое, по-видимому, подразумевает, что в какой-то момент оно было в стандарте. Я не могу найти никаких других упоминаний.

Так что же случилось с cspan? Это было удалено? Он вообще когда-либо существовал?

1 Ответ

10 голосов
/ 02 июля 2019

Действительно, cspan не существует и никогда не существовало. Единственное изменение имени в том, что span раньше было написано array_view

Ссылка в P1085R2 :

|  3  |  Make span operate only on const T, (rename cspan, obviously :D)  |

- это шутка, подразумеваемая :D (обратите внимание, что C-SPAN - это кабельная сеть, которая транслирует разбирательства федерального правительства). Фактическое предложение состояло в том, что span<T> изменится, чтобы вести себя как сегодняшний span<T const> (и нагло переименовать его в cspan).

Просто напишите span<T const>. Это на 5 символов длиннее, чем cspan<T>, с дополнительным преимуществом, благодаря которому все больше людей узнают, что такое span.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...