diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-11-09 18:14:37 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-11-09 18:14:37 +0200 |
commit | 2bf2944a844d002267d3508ce81a2128ccbb8af7 (patch) | |
tree | 32732629cdd48b789242e6a8dc1673c593f6fb8f /odb/sqlite/database.ixx | |
parent | 857fabab0c537a286e8a39503bf987029669d854 (diff) |
Make database class move-constructible
This means it can be returned by value from a function in C++11.
Diffstat (limited to 'odb/sqlite/database.ixx')
-rw-r--r-- | odb/sqlite/database.ixx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/odb/sqlite/database.ixx b/odb/sqlite/database.ixx index c1e8f07..aec4ba5 100644 --- a/odb/sqlite/database.ixx +++ b/odb/sqlite/database.ixx @@ -2,12 +2,28 @@ // copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file +#include <utility> // move() + #include <odb/sqlite/transaction.hxx> namespace odb { namespace sqlite { +#ifdef ODB_CXX11 + inline database:: + database (database&& db) // Has to be inline. + : odb::database (std::move (db)), + name_ (std::move (db.name_)), + flags_ (db.flags_), + foreign_keys_ (db.foreign_keys_), + vfs_ (std::move (db.vfs_)), + factory_ (std::move (db.factory_)) + { + factory_->database (*this); // New database instance. + } +#endif + inline connection_ptr database:: connection () { |