@@ -132,8 +132,9 @@ class database_binder {
132132
133133private:
134134 std::shared_ptr<sqlite3> _db;
135- std::unique_ptr<sqlite3_stmt, decltype (&sqlite3_finalize)> _stmt;
136135 std::u16string _sql;
136+ std::unique_ptr<sqlite3_stmt, decltype (&sqlite3_finalize)> _stmt;
137+
137138 int _inx;
138139
139140 bool execution_started = false ;
@@ -291,8 +292,7 @@ class database {
291292
292293 template <typename T>
293294 database_binder::chain_type operator <<(const T& sql) const {
294- database_binder::chain_type dbb = std::make_unique<database_binder>(_db, std::string (sql));// std::make_shared<database_binder>(_db, sql);
295- return dbb;
295+ return database_binder::chain_type (new database_binder (_db,std::string (sql)));
296296 }
297297
298298 std::shared_ptr<sqlite3> get_sqlite3_connection () const { return _db; }
@@ -376,7 +376,7 @@ template<> inline database_binder::chain_type& operator <<(database_binder::chai
376376 }
377377
378378 ++db->_inx ;
379- return std::move (db) ;
379+ return db ;
380380}
381381template <> inline void get_col_from_db (database_binder& db,int inx, sqlite3_int64& i) {
382382 if (sqlite3_column_type (db._stmt .get (), inx) == SQLITE_NULL) {
@@ -394,7 +394,7 @@ template<> inline database_binder::chain_type& operator <<(database_binder::chai
394394 }
395395
396396 ++db->_inx ;
397- return std::move (db) ;
397+ return db ;
398398}
399399template <> inline void get_col_from_db (database_binder& db, int inx, float & f) {
400400 if (sqlite3_column_type (db._stmt .get (), inx) == SQLITE_NULL) {
@@ -412,7 +412,7 @@ template<> inline database_binder::chain_type& operator <<(database_binder::chai
412412 }
413413
414414 ++db->_inx ;
415- return std::move (db) ;
415+ return db ;
416416}
417417template <> inline void get_col_from_db (database_binder& db, int inx, double & d) {
418418 if (sqlite3_column_type (db._stmt .get (), inx) == SQLITE_NULL) {
@@ -438,7 +438,7 @@ template<> inline database_binder::chain_type& operator <<(database_binder::chai
438438 }
439439
440440 ++db->_inx ;
441- return std::move (db) ;
441+ return db ;
442442}
443443// std::u16string
444444template <> inline void get_col_from_db (database_binder& db, int inx, std::u16string & w) {
@@ -458,7 +458,7 @@ template<> inline database_binder::chain_type& operator <<(database_binder::chai
458458 }
459459
460460 ++db->_inx ;
461- return std::move (db) ;
461+ return db ;
462462}
463463
464464#ifdef _MODERN_SQLITE_BOOST_OPTIONAL_SUPPORT
@@ -467,12 +467,12 @@ template <typename BoostOptionalT> database_binder::chain_type& operator <<(data
467467 return operator << (std::move (db), std::move (*val));
468468 }
469469 int hresult;
470- if ((hresult = sqlite3_bind_null (db->_stmt .get (), db. _inx )) != SQLITE_OK) {
470+ if ((hresult = sqlite3_bind_null (db->_stmt .get (), db-> _inx )) != SQLITE_OK) {
471471 exceptions::throw_sqlite_error (hresult);
472472 }
473473
474474 ++db._inx ;
475- return std::move (db) ;
475+ return db ;
476476}
477477
478478template <typename BoostOptionalT> void get_col_from_db (database_binder::chain_type& db, int inx, boost::optional<BoostOptionalT>& o) {
0 commit comments