`gsl::string_span` 的目的是什么?

szx*_*pmj 5 c++ library-design c++11 cpp-core-guidelines

在阅读Microsoft's implementation of Cpp Core Guidelines 时,我遇到了两个问题:

  1. 为什么gsl::string_spangsl::span已经运行良好的地方提供?
  2. 为什么gsl::zstring_spanstd::string自 C++11 以来已保证以空值终止的地方提供?

任何说明情况都将受到高度赞赏。

Jef*_*ett 6

  1. span("Hi"){'H', 'i', '\0'}string_span("Hi"){'H', 'i'}string_span检查终止空字符并且不将其包含在跨度中。
  2. string是拥有而跨度不是,所以比较它们就是比较苹果和橙子。zstring_span是具有最后一个字符为空字符约束的跨度。既没有spanstring_span没有这种限制。