12#if !defined(PQXX_HEADER_PRE)
13# error "Include libpqxx headers as <pqxx/header>, not <pqxx/header.hxx>."
20#if defined(PQXX_HAVE_CONCEPTS) && __has_include(<ranges>)
79template<
typename TYPE>
80using strip_t = std::remove_cv_t<std::remove_reference_t<TYPE>>;
83#if defined(PQXX_HAVE_CONCEPTS)
88template<std::ranges::range CONTAINER>
95template<
typename CONTAINER>
100#if defined(PQXX_HAVE_CONCEPTS)
102template<
typename STRING>
103concept char_string = std::ranges::contiguous_range<STRING> and
104 std::same_as<strip_t<value_type<STRING>>,
char>;
107template<
typename RANGE>
108concept char_strings =
109 std::ranges::range<RANGE> and char_string<strip_t<value_type<RANGE>>>;
112template<
typename DATA>
113concept potential_binary =
119#if defined(PQXX_HAVE_CONCEPTS)
125# define PQXX_RANGE_ARG std::ranges::range
131# define PQXX_CHAR_STRING_ARG pqxx::char_string
137# define PQXX_CHAR_STRINGS_ARG pqxx::char_strings
145# define PQXX_RANGE_ARG typename
151# define PQXX_CHAR_STRING_ARG typename
157# define PQXX_CHAR_STRINGS_ARG typename
Connection to a database.
Definition connection.hxx:279
Iterator for rows in a result. Use as result::const_iterator.
Definition result_iterator.hxx:33
Reverse iterator for result. Use as result::const_reverse_iterator.
Definition result_iterator.hxx:196
Reverse iterator for a row. Use as row::const_reverse_iterator.
Definition row.hxx:411
Iterator for fields in a row. Use as row::const_iterator.
Definition row.hxx:291
Definition errorhandler.hxx:46
Reference to a field in a result set.
Definition field.hxx:35
Accessor for large object's contents.
Definition largeobject.hxx:154
Definition notification.hxx:57
Result set containing data returned by a query or command.
Definition result.hxx:92
Reference to one row in a result.
Definition row.hxx:47
Stream data from the database.
Definition stream_from.hxx:79
Binary data corresponding to PostgreSQL's "BYTEA" binary-string type.
Definition binarystring.hxx:58
Something is out of range, similar to std::out_of_range.
Definition except.hxx:326
Abstract transaction base class: bracket transactions on the database.
Definition dbtransaction.hxx:54
Interface definition (and common code) for "transaction" classes.
Definition transaction_base.hxx:151
The home of all libpqxx classes, functions, templates, etc.
Definition array.cxx:27
int row_size_type
Number of fields in a row of database data.
Definition types.hxx:34
std::remove_cv_t< std::remove_reference_t< TYPE > > strip_t
Remove any constness, volatile, and reference-ness from a type.
Definition types.hxx:80
int row_difference_type
Difference between row sizes.
Definition types.hxx:37
std::size_t field_size_type
Number of bytes in a field of database data.
Definition types.hxx:40
int result_difference_type
Difference between result sizes.
Definition types.hxx:31
strip_t< decltype(*std::begin(std::declval< CONTAINER >()))> value_type
The type of a container's elements.
Definition types.hxx:96
int result_size_type
Number of rows in a result set.
Definition types.hxx:28
int64_t large_object_size_type
Number of bytes in a large object.
Definition types.hxx:43
format
Format code: is data text or binary?
Definition types.hxx:70
Marker for stream_from constructors: "stream from query.".
Definition types.hxx:171
Marker for stream_from constructors: "stream from table.".
Definition types.hxx:165