c++ - `gsl::string_span`的目的是什么?

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

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

  1. 为什么在 gsl::span 已经运行良好的情况下还要提供 gsl::string_span
  2. 自 C++11 起,为什么要提供 gsl::zstring_span,而 std::string 已保证以 null 终止?

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

最佳答案

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

关于c++ - `gsl::string_span`的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49348933/

相关文章:

c++ - 如何在 Linux 上使用 Qt 读取 HID 设备 (/dev/hidrawX)?

c++ - Netbeans 讨厌 nullptr 但仍然工作正常

api - Java标准库: Which methods are with biggest number of arguments in the library?

c++ - 将数字格式化为特定的 QString 格式

c++ - fread 在空值处终止中间读取。还读取超过预期数据的垃圾

java - 将 env var 从 java 传递到 c++

c++ - 如何让这段涉及 unique_ptr 的代码进行编译?

c++ - 像GCC这样的编译器如何实现std::mutex的获取/释放语义

c# - 关于面向对象和库设计的几个问题

xml - scala.Predef 中 $scope 的用途是什么?