19#include <bsoncxx/stdx/string_view.hpp>
20#include <bsoncxx/view_or_value.hpp>
22#include <bsoncxx/config/prelude.hpp>
25BSONCXX_INLINE_NAMESPACE_BEGIN
56 : bsoncxx::
view_or_value<stdx::string_view, std::string>(stdx::string_view(str)) {
70 : bsoncxx::
view_or_value<stdx::string_view, std::string>(stdx::string_view(str)) {
103 return lhs.
view() == stdx::string_view(rhs);
106BSONCXX_INLINE
bool operator!=(
const view_or_value& lhs,
const char* rhs) {
107 return !(lhs == rhs);
110BSONCXX_INLINE
bool operator==(
const char* lhs,
const view_or_value& rhs) {
114BSONCXX_INLINE
bool operator!=(
const char* lhs,
const view_or_value& rhs) {
115 return !(rhs == lhs);
122BSONCXX_INLINE_NAMESPACE_END
125#include <bsoncxx/config/postlude.hpp>
Class representing a view-or-value variant type for strings.
Definition view_or_value.hpp:36
view_or_value(const std::string &str)
Allow construction with an l-value reference to a std::string.
Definition view_or_value.hpp:69
view_or_value()=default
Default constructor, equivalent to using an empty string.
view_or_value terminated() const
Return a string_view_or_value that is guaranteed to hold a null-terminated string.
bool operator==(const view_or_value &lhs, const char *rhs)
Comparison operators for comparing string::view_or_value directly with const char *.
Definition view_or_value.hpp:102
const char * data() const
Call data() on this view_or_value's string_view.
view_or_value(const char *str)
Construct a string::view_or_value using a null-terminated const char *.
Definition view_or_value.hpp:55
Class representing a view-or-value variant type.
Definition view_or_value.hpp:30
const View & view() const
Get a View for the type.
Definition view_or_value.hpp:135