14 #include "pqxx/compiler-public.hxx" 16 #include <string_view> 17 #include <type_traits> 36 class zview :
public std::string_view
39 constexpr
zview() noexcept =
default;
42 constexpr
zview(
char const text[], std::ptrdiff_t len) :
43 std::string_view{text,
static_cast<std::size_t
>(len)}
47 constexpr
zview(
char text[], std::ptrdiff_t len) :
48 std::string_view{text,
static_cast<std::size_t
>(len)}
54 template<
typename... Args>
55 explicit constexpr
zview(Args &&... args) :
56 std::string_view(
std::forward<Args>(args)...)
60 zview(std::string
const &str) :
std::string_view(str) {}
64 constexpr
zview(
char const (&literal)[size]) : zview(literal, size - 1)
68 [[nodiscard]] constexpr
char const *
c_str() const noexcept {
return data(); }
73 #if defined(PQXX_HAVE_CONCEPTS) 83 std::is_convertible_v<T, char const *> or std::is_convertible_v<T, zview> or
84 std::is_convertible_v<T, std::string const &>;
86 #endif // PQXX_HAVE_CONCEPTS 92 inline constexpr
char const *
as_c_string(
char const str[]) noexcept
97 template<std::
size_t N>
98 inline constexpr
char const *
as_c_string(
char (&str)[N]) noexcept
constexpr zview(char const text[], std::ptrdiff_t len)
Convenience overload: construct using pointer and signed length.
Definition: zview.hxx:42
Private namespace for libpqxx's internal use; do not access.
Definition: composite.hxx:70
constexpr char const * c_str() const noexcept
Either a null pointer, or a zero-terminated text buffer.
Definition: zview.hxx:68
constexpr char const * as_c_string(char const str[]) noexcept
Get a raw C string pointer.
Definition: zview.hxx:92
constexpr zview() noexcept=default
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:25
constexpr zview(Args &&... args)
Construct from any initialiser you might use for std::string_view.
Definition: zview.hxx:55
constexpr zview(char const (&literal)[size])
Definition: zview.hxx:64
zview(std::string const &str)
Definition: zview.hxx:60
Marker-type wrapper: zero-terminated std::string_view.
Definition: zview.hxx:36
constexpr zview(char text[], std::ptrdiff_t len)
Convenience overload: construct using pointer and signed length.
Definition: zview.hxx:47