据我所知,gsl::string_span
似乎std::string_view
有基本相同的使用理由。真的是这样吗?如果是这样,它们实际上是否相同?如果不是 - 它们有何不同?
问问题
1281 次
1 回答
2
怎么做
gsl::string_span
和std::string_view
区别?
它们的可用方式有一个相当明显的区别,但我会说它是因为它很重要:gsl::string_span
需要使用第三方库,而std::string_view
它是标准的 C++ 类型。另一方面,提供的库gsl::string_span
支持 C++14,而 std::string_view
需要 C++17。
一个主要的设计差异是std::string_view
字符串的 const 视图,并且不提供修改查看字符串的任何方式,同时gsl::string_span
允许非常量访问。例如:
constexpr iterator gsl::string_span::begin() const noexcept
^^^^^^^^ note non-const iterator ^^^^^ also note this
gsl::string_span
另请注意,即使跨度本身是 const,也如何允许非常量访问。换句话说,gsl::string_span
不传播常量。std::span
这与和相同gsl::span
。
于 2019-07-01T00:35:07.113 回答