在阅读Microsoft's implementation的Cpp Core Guidelines期间,我遇到了两个问题:
gsl::string_span
提供gsl::span
已经正常运作的地方?gsl::zstring_span
提供了自{C} 11以来std::string
已被保证为空终止的地方?任何说明情况都将受到高度赞赏。
答案 0 :(得分:2)
span("Hi")
为{'H', 'i', '\0'}
,而string_span("Hi")
为{'H', 'i'}
。 string_span
检查终止空字符,但不包括在span中。string
拥有并且跨度不是,因此比较它们是比较苹果和橙子。 zstring_span
是一个带有约束的范围,即最后一个字符是空字符。 span
和string_span
都没有约束。