![](/img/trans.png)
[英]How to correctly create std::string from a std::string_view?
[英]How do gsl::string_span and std::string_view differ?
據我所知, gsl::string_span
和std::string_view
似乎具有基本相同的使用理由。 確實是這樣嗎? 如果是這樣,它們實際上是否相同? 如果不是,它們有何不同?
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
卻允許非const訪問。 例如:
constexpr iterator gsl::string_span::begin() const noexcept
^^^^^^^^ note non-const iterator ^^^^^ also note this
還要注意,即使span本身是const, gsl::string_span
也是如何允許非const訪問的。 換句話說, gsl::string_span
不會傳播gsl::string_span
。 這與std::span
和gsl::span
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.