diff --git a/src/libs/sqlite/sqlitebasestatement.h b/src/libs/sqlite/sqlitebasestatement.h index e8e9026dae3..f58f73fdcdd 100644 --- a/src/libs/sqlite/sqlitebasestatement.h +++ b/src/libs/sqlite/sqlitebasestatement.h @@ -210,7 +210,7 @@ public: } template - auto value(const QueryTypes &...queryValues) + std::enable_if_t, ResultType> value(const QueryTypes &...queryValues) { Resetter resetter{this}; ResultType resultValue; diff --git a/tests/unit/unittest/sqlitestatement-test.cpp b/tests/unit/unittest/sqlitestatement-test.cpp index 3804f8b31ed..873ba1d5e30 100644 --- a/tests/unit/unittest/sqlitestatement-test.cpp +++ b/tests/unit/unittest/sqlitestatement-test.cpp @@ -1162,21 +1162,29 @@ TEST_F(SqliteStatement, GetTupleValueAndMultipleQueryValue) TEST_F(SqliteStatement, GetValueCallsReset) { + struct Value + { + int x = 0; + }; MockSqliteStatement mockStatement{databaseMock}; EXPECT_CALL(mockStatement, reset()); - mockStatement.value("bar"); + mockStatement.value("bar"); } TEST_F(SqliteStatement, GetValueCallsResetIfExceptionIsThrown) { + struct Value + { + int x = 0; + }; MockSqliteStatement mockStatement{databaseMock}; ON_CALL(mockStatement, next()).WillByDefault(Throw(Sqlite::StatementHasError(""))); EXPECT_CALL(mockStatement, reset()); - EXPECT_THROW(mockStatement.value("bar"), Sqlite::StatementHasError); + EXPECT_THROW(mockStatement.value("bar"), Sqlite::StatementHasError); } TEST_F(SqliteStatement, GetValuesWithoutArgumentsCallsReset)