libpqxx  7.2.0
pqxx::zview Class Reference

Marker-type wrapper: zero-terminated std::string_view. More...

#include <zview.hxx>

Inheritance diagram for pqxx::zview:

Public Member Functions

constexpr zview () noexcept=default
 
constexpr zview (char const text[], std::ptrdiff_t len)
 Convenience overload: construct using pointer and signed length. More...
 
constexpr zview (char text[], std::ptrdiff_t len)
 Convenience overload: construct using pointer and signed length. More...
 
template<typename... Args>
constexpr zview (Args &&... args)
 Construct from any initialiser you might use for std::string_view. More...
 
 zview (std::string const &str)
 
template<size_t size>
constexpr zview (char const (&literal)[size])
 
constexpr char const * c_str () const noexcept
 Either a null pointer, or a zero-terminated text buffer. More...
 

Detailed Description

Marker-type wrapper: zero-terminated std::string_view.

Warning
Use this only if the underlying string is zero-terminated.

When you construct a zview, you are promising that if the data pointer is non-null, the underlying string is zero-terminated. It otherwise behaves exactly like a std::string_view.

The terminating zero is not "in" the string, so it does not count as part of the view's length.

The added guarantee lets the view be used as a C-style string, which often matters since libpqxx builds on top of a C library. For this reason, zview also adds a c_str method.

Constructor & Destructor Documentation

◆ zview() [1/6]

constexpr pqxx::zview::zview ( )
defaultnoexcept

◆ zview() [2/6]

constexpr pqxx::zview::zview ( char const  text[],
std::ptrdiff_t  len 
)

Convenience overload: construct using pointer and signed length.

◆ zview() [3/6]

constexpr pqxx::zview::zview ( char  text[],
std::ptrdiff_t  len 
)

Convenience overload: construct using pointer and signed length.

◆ zview() [4/6]

template<typename... Args>
constexpr pqxx::zview::zview ( Args &&...  args)
explicit

Construct from any initialiser you might use for std::string_view.

Warning
Only do this if you are sure that the string is zero-terminated.

◆ zview() [5/6]

pqxx::zview::zview ( std::string const &  str)

◆ zview() [6/6]

template<size_t size>
constexpr pqxx::zview::zview ( char const (&)  literal[size])

Member Function Documentation

◆ c_str()

constexpr char const* pqxx::zview::c_str ( ) const
noexcept

The documentation for this class was generated from the following file: