gpt4 book ai didi

boost - boost::string_ref 和 boost::string_view 的区别

转载 作者:行者123 更新时间:2023-12-03 22:22:19 26 4
gpt4 key购买 nike

Boost 提供了两种不同的实现 string_view ,这将成为 C++17 的一部分:

  • boost::string_refutility/string_ref.hpp
  • boost::string_viewcore/string_view.hpp

  • 这些之间有什么显着差异吗? future 应该优先选择哪个?

    注意:我注意到在 Boost 1.61 中,boost::log 已弃用 string_ref 以支持 string_view;也许这是一个指标? ( http://www.boost.org/users/history/version_1_61_0.html )

    最佳答案

    有趣的是,现在我正在与 Marshall Clow(委员会背后 string_view 等人背后的力量)一起参加 ACCU 会​​议,今天早些时候我正准备在酒吧问他,然后我被叫走,谈论他对 string_view 与Bjarne 的指南支持库 (GSL) gsl::span<T>这是非常相似的事情(gsl-lite 是我个人最喜欢的 GSL 实现,因为它与 03 兼容,但还有很多其他实现)。我听说它们将被统一到一个单一的标准化实现中,而 gsl::span<T>方向是 future ,但如果我错了,我会亲自从马嘴里回来报告。现在,假设 gsl::span<T>方向是当前的 future ,即使 using string_view = gsl::span<char> Boost 也会很快更新为类似的东西本质上是 string_view。

    编辑:我刚和楼下的编码(marshal)谈过。他告诉我,根据 Boost 中的实现,string_view 肯定是在 C++ 17 中。array_view 不是,现在也不是历史上围绕 string_view 的任何东西。

    GSL string_span 是一个单独的实体,预计不会在 C++ 17 中输入,也没有任何目前的计划来统一实现,因为它们解决了不同的用例,特别是 string_view 始终是借用字符数组的常量 View ,而 string_span 是预期的成为借用字符数组的潜在可修改 View ,具有作为构建新字符串的源的潜在用途,因此 string_span 可能最终成为某些 future C++ 标准中 string_view 的泛化。

    关于boost - boost::string_ref 和 boost::string_view 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36704794/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com