Во время чтения Реализация Microsoft из Cpp Core Guidelines, Я сталкиваюсь с двумя вопросами:
gsl::string_span
при условии, где gsl::span
уже хорошо работает?gsl::zstring_span
при условии, где std::string
уже гарантированно будет нулевым символом с C ++ 11?Любые иллюстрирующие ситуации будут высоко оценены.
span("Hi")
является {'H', 'i', '\0'}
в то время как string_span("Hi")
является {'H', 'i'}
, string_span
проверяет завершающий нулевой символ и не включает его в диапазон.string
есть, а промежутки — нет, поэтому сравнивать их — это сравнивать яблоки и апельсины. zstring_span
это диапазон с ограничением, что последний символ является нулевым символом. ни span
ни string_span
есть это ограничение.Других решений пока нет …