From 1f217e38f7507758da1d33d46e675e801621aa38 Mon Sep 17 00:00:00 2001 From: Michael Shepanski Date: Thu, 30 Oct 2014 15:21:32 +1100 Subject: Allow lambdas & std::functions as query factories with C++-98 builds of libodb --- odb/database.ixx | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) (limited to 'odb/database.ixx') diff --git a/odb/database.ixx b/odb/database.ixx index a15bb7d..6cfbeec 100644 --- a/odb/database.ixx +++ b/odb/database.ixx @@ -3,7 +3,6 @@ // license : GNU GPL v2; see accompanying LICENSE file #include // std::strlen() -#include // std::move #include @@ -65,31 +64,13 @@ namespace odb return connection_ptr (connection_ ()); } +#ifndef ODB_CXX11 inline void database:: - query_factory (const char* name, query_factory_type f) + query_factory (const char* name, query_factory_ptr f) { - if (f) -#ifdef ODB_CXX11 - query_factory_map_[name] = std::move (f); -#else - query_factory_map_[name] = f; -#endif - else - query_factory_map_.erase (name); - } - - inline database::query_factory_type database:: - lookup_query_factory (const char* name) const - { - query_factory_map::const_iterator i (query_factory_map_.find (name)); - - if (i == query_factory_map_.end ()) - i = query_factory_map_.find (""); // Wildcard factory. - - return i != query_factory_map_.end () - ? i->second - : database::query_factory_type (); + query_factory (name, query_factory_wrapper (f)); } +#endif inline void database:: tracer (tracer_type& t) -- cgit v1.1