From a5a31413ef7b81755475da8a705e6aea9ad28aac Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 15 Jun 2016 18:50:51 +0200 Subject: Get rid of C++11 deprecation warnings for auto_ptr, exception specs In particular, std::auto_ptr is no longer mapped in C++11. --- prepared/driver.cxx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/prepared/driver.cxx b/prepared/driver.cxx index d805ddb..c5b5b22 100644 --- a/prepared/driver.cxx +++ b/prepared/driver.cxx @@ -1,14 +1,17 @@ // file : prepared/driver.cxx // copyright : not copyrighted - public domain -#include // std::auto_ptr +#include // std::auto_ptr/unique_ptr #include +#include // std::move() #include #include #include #include +#include // ODB_CXX11 + #include "database.hxx" // create_database #include "person.hxx" @@ -28,11 +31,19 @@ query_factory (const char* name, connection& c) { typedef odb::query query; +#ifdef ODB_CXX11 + unique_ptr p (new params); + query q (query::age > query::_ref (p->age) && + query::first == query::_ref (p->first)); + prepared_query pq (c.prepare_query (name, q)); + c.cache_query (pq, move (p)); +#else auto_ptr p (new params); query q (query::age > query::_ref (p->age) && query::first == query::_ref (p->first)); prepared_query pq (c.prepare_query (name, q)); c.cache_query (pq, p); +#endif } static void @@ -150,11 +161,19 @@ main (int argc, char* argv[]) if (!pq) { +#ifdef ODB_CXX11 + unique_ptr p (new unsigned short); + age_param = p.get (); + query q (query::age > query::_ref (*age_param)); + pq = db->prepare_query ("person-ref-age-query", q); + db->cache_query (pq, move (p)); +#else auto_ptr p (new unsigned short); age_param = p.get (); query q (query::age > query::_ref (*age_param)); pq = db->prepare_query ("person-ref-age-query", q); db->cache_query (pq, p); // Assumes ownership of p. +#endif } *age_param = age; // Initialize the parameter. -- cgit v1.1