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

时间:2018-03-18 14:22:17

标签: c++ c++11 library-design cpp-core-guidelines

在阅读Microsoft's implementationCpp Core Guidelines期间,我遇到了两个问题:

  1. 为什么gsl::string_span提供gsl::span已经正常运作的地方?
  2. 为什么gsl::zstring_span提供了自{C} 11以来std::string已被保证为空终止的地方?
  3. 任何说明情况都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

  1. span("Hi"){'H', 'i', '\0'},而string_span("Hi"){'H', 'i'}string_span检查终止空字符,但不包括在span中。
  2. string拥有并且跨度不是,因此比较它们是比较苹果和橙子。 zstring_span是一个带有约束的范围,即最后一个字符是空字符。 spanstring_span都没有约束。