From 35a2460893ddfd006d9d85dcc6ab7a01c1ab9848 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 28 Feb 2012 16:16:05 +0200 Subject: Handle C++11 movable object pointers such as std::unique_ptr --- odb/view-result.hxx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'odb/view-result.hxx') diff --git a/odb/view-result.hxx b/odb/view-result.hxx index e6de6cb..dbe77a8 100644 --- a/odb/view-result.hxx +++ b/odb/view-result.hxx @@ -9,11 +9,13 @@ #include // std::ptrdiff_t, std::size_t #include // iterator categories +#include // std::move #include #include #include +#include // ODB_CXX11 #include namespace odb @@ -96,12 +98,27 @@ namespace odb size () = 0; protected: +#ifdef ODB_CXX11 + void + current (pointer_type& p) + { + current_ = std::move (p); + guard_.reset (current_); + } + + void + current (pointer_type&& p) + { + current (p); + } +#else void current (pointer_type p) { current_ = p; guard_.reset (current_); } +#endif bool begin_; bool end_; -- cgit v1.1