aboutsummaryrefslogtreecommitdiff
path: root/odb/sqlite/database.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-11-09 18:14:37 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-11-09 18:14:37 +0200
commit2bf2944a844d002267d3508ce81a2128ccbb8af7 (patch)
tree32732629cdd48b789242e6a8dc1673c593f6fb8f /odb/sqlite/database.ixx
parent857fabab0c537a286e8a39503bf987029669d854 (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.ixx16
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 ()
{