Answers to frequently asked questions
FAQ.55
Если вы используете стандартные типы там, где они доступны, почему `span<char>` из GSL отличается от `string_view` из технической спецификации Library Fundamentals 1 и рабочего документа C++17? Почему бы не использовать одобренный комитетом `string_view`?
Консенсус относительно таксономии представлений (view) в стандартной библиотеке C++ таков: "view" означает доступ только для чтения, а "span" — доступ для чтения и записи. Руководствуйтесь следующими рекомендациями:
- Если вам нужно только представление символов для чтения без гарантированной проверки границ и вы используете C++17 — применяйте
std::string_viewиз C++17. - Если вам нужно представление для чтения и записи без гарантированной проверки границ и вы используете C++20 — применяйте
std::span<char>из C++20. - В остальных случаях используйте
gsl::span<char>.