From ef89db97d3acf1b3573ff6097ff8eb4288c845da Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 8 Oct 2023 17:23:41 +0100 Subject: Simplify checkResult Becomes template for however many acceptable status there are and tests as a fold expression. --- libpqpp/pq-connection.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'libpqpp/pq-connection.cpp') diff --git a/libpqpp/pq-connection.cpp b/libpqpp/pq-connection.cpp index dc3cf13..ed00d8d 100644 --- a/libpqpp/pq-connection.cpp +++ b/libpqpp/pq-connection.cpp @@ -124,16 +124,11 @@ PQ::Connection::modify(const std::string & sql, const DB::CommandOptionsCPtr & o return std::make_shared(this, sql, opts); } -bool -PQ::Connection::checkResultInt(PGresult * res, int expected, int alt) -{ - return (PQresultStatus(res) == expected) || (alt != -1 && (PQresultStatus(res) == alt)); -} - +template... Expected> PQ::ResultPtr -PQ::Connection::checkResult(PGresult * res, int expected, int alt) const +PQ::Connection::checkResult(PGresult * res, Expected... expected) const { - if (!checkResultInt(res, expected, alt)) { + if (const auto status = PQresultStatus(res); (... && (status != expected))) { PQclear(res); throw Error(conn); } -- cgit v1.2.3