bsoncxx:document::view 对比 document::value

bsoncxx: document::view vs document::value

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

是的,viewvalue 的代理。

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