В библиотеке bsoncxx values
представляет владение неизменным ресурсом, но не возможность проверки принадлежащего ресурса.Для проверки принадлежащего ресурса вы получаете view
от value
.view
и value
здесь аналогичны отношениям между std::string
и std::string_view
.Отделяя аспекты владения от проверки, мы можем иметь дешевый тип, используемый для API-интерфейсов, которым требуется только просмотр данных, и более дорогой API-интерфейс, когда нам нужно делать копии или брать на себя ответственность за ресурсы.