Skip to content

Commit c5b3aa8

Browse files
committed
Restored Statement move constructor for compatibility with older compilers
1 parent 27a3252 commit c5b3aa8

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

include/SQLiteCpp/Statement.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class Statement
7979
*
8080
* @param[in] aStatement Statement to move
8181
*/
82-
Statement(Statement&& aStatement) noexcept = default;
82+
Statement(Statement&& aStatement) noexcept;
8383
Statement& operator=(Statement&& aStatement) noexcept = default;
8484

8585
// Statement is non-copyable

src/Statement.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,21 @@ Statement::Statement(const Database& aDatabase, const char* apQuery) :
2828
mColumnCount = sqlite3_column_count(mpPreparedStatement.get());
2929
}
3030

31+
Statement::Statement(Statement&& aStatement) noexcept :
32+
mQuery(std::move(aStatement.mQuery)),
33+
mpSQLite(aStatement.mpSQLite),
34+
mpPreparedStatement(std::move(aStatement.mpPreparedStatement)),
35+
mColumnCount(aStatement.mColumnCount),
36+
mbHasRow(aStatement.mbHasRow),
37+
mbDone(aStatement.mbDone),
38+
mColumnNames(std::move(aStatement.mColumnNames))
39+
{
40+
aStatement.mpSQLite = nullptr;
41+
aStatement.mColumnCount = 0;
42+
aStatement.mbHasRow = false;
43+
aStatement.mbDone = false;
44+
}
45+
3146
// Reset the statement to make it ready for a new execution (see also #clearBindings() bellow)
3247
void Statement::reset()
3348
{

0 commit comments

Comments
 (0)