9 #ifndef PQXX_H_RESULT_ITER
10 #define PQXX_H_RESULT_ITER
35 m_home{&home}, m_size{std::size(home)}
37 if (not std::empty(home))
45 if (m_index >= m_size)
55 return m_home == rhs.m_home;
62 void read() { (*m_home)[m_index].convert(m_value); }
64 result const *m_home{
nullptr};
83 if (std::size(m_home) == 0)
102 template<
typename CALLABLE>
106 constexpr
auto sz{std::tuple_size_v<args_tuple>};
109 "Callback for for_each must take parameters, one for each column in the "
112 auto const cols{this->columns()};
115 "Callback to for_each takes ", sz,
"parameter", (sz == 1) ?
"" :
"s",
116 ", but result set has ", cols,
"field", (cols == 1) ?
"" :
"s",
".")};
119 for (
auto const r : *
this) std::apply(func, r.as_tuple<pass_tuple>());
std::string concat(TYPE...item)
Efficiently combine a bunch of items into one big string.
Definition: concat.hxx:31
iterator begin() const
Definition: result_iter.hxx:81
auto iter() const
Iterate rows, reading them directly into a tuple of "TYPE...".
Definition: result_iter.hxx:96
result_iteration(result const &home)
Definition: result_iter.hxx:76
void for_each(CALLABLE &&func) const
Run func on each row, passing the row's fields as parameters.
Definition: result_iter.hxx:103
Definition: result_iter.hxx:71
Error in usage of libpqxx library, similar to std::logic_error.
Definition: except.hxx:248
Internal items for libpqxx' own use. Do not use these yourself.
Definition: encodings.cxx:32
result expect_columns(row_size_type cols) const
Expect that result consists of exactly cols columns.
Definition: result.hxx:363
iterator end() const
Definition: result_iter.hxx:88
Result set containing data returned by a query or command.
Definition: result.hxx:91
value_type const & operator*() const
Definition: result_iter.hxx:59
bool operator!=(result_iter const &rhs) const
Definition: result_iter.hxx:57
The home of all libpqxx classes, functions, templates, etc.
Definition: array.cxx:26
decltype(strip_types(std::declval< TYPES... >())) strip_types_t
Take a tuple type and apply strip_t to its component types.
Definition: util.hxx:629
bool operator==(result_iter const &rhs) const
Comparison only works for comparing to end().
Definition: result_iter.hxx:53
result_iter(result const &home)
Definition: result_iter.hxx:34
std::tuple< TYPE... > value_type
Definition: result_iter.hxx:29
result_iter()=default
Construct an "end" iterator.
result_size_type size_type
Definition: result.hxx:94
Iterator for looped unpacking of a result.
Definition: result_iter.hxx:26
result_iter & operator++()
Definition: result_iter.hxx:42
decltype(args_f(std::declval< CALLABLE >())) args_t
A callable's parameter types, as a tuple.
Definition: util.hxx:616