【问题标题】:bsoncxx: document::view vs document::valuebsoncxx:文档::视图与文档::值
【发布时间】:2019-03-04 10:02:20
【问题描述】:

请解释bsoncxx::document::valuebsoncxx::document::view 之间的区别。 view 只是 value 类的代理吗?

【问题讨论】:

    标签: c++ bson mongo-cxx-driver


    【解决方案1】:

    是的,viewvalue 的代理。

    【讨论】:

      【解决方案2】:

      在 bsoncxx 库中,values 代表不可变资源的所有权,但不代表检查拥有资源的能力。要检查拥有的资源,您可以从value 获得view。这里的viewvalue 类似于std::stringstd::string_view 之间的关系。通过将所有权与检查分离,我们可以为只需要查看数据的 API 提供一种廉价的类型,而在我们需要复制或接管资源所有权时使用一种更昂贵的 API。

      【讨论】:

      • PS:请注意view 确实不会延长底层value 的生命周期。从给定的value 派生的所有views 的生命周期必须是所属`value 的生命周期的子集。
      猜你喜欢
      • 2020-12-27
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 2015-10-12
      相关资源
      最近更新 更多