有趣的是,我现在正在与 Marshall Clow(string_view 等人在委员会背后的力量)参加 ACCU 会议,今天早些时候我正要在酒吧问他,然后我被叫走了他对 string_view 与Bjarne 的 Guideline Support Library (GSL)gsl::span<T>
是一个非常相似的东西(gsl-lite是我个人最喜欢的 GSL 实现,因为它兼容 03,但还有很多其他的)。听说要统一成一个统一的实现实现标准化,gsl::span<T>
方向是未来,但如果我错了,我会从马口中回来报告。现在,假设gsl::span<T>
方向是当前的未来,并且 Boost 将很快更新为类似的东西,即使using string_view = gsl::span<char>
本质上是 string_view.
编辑:我刚刚和楼下的马歇尔谈过了。他告诉我,根据 Boost 中的实现,string_view 肯定在 C++ 17 中。array_view 不是,现在也没有任何历史上围绕 string_view 的东西。
GSL string_span 是一个单独的实体,预计不会进入 C++ 17,目前也没有任何统一实现的计划,因为它们解决了不同的用例,特别是 string_view 始终是借用字符数组的常量视图,而 string_span 是预期的作为借用字符数组的潜在可修改视图,并可能用作构建新字符串的来源,因此 string_span 可能最终可能成为 string_view 在某些未来 C++ 标准中的泛化。