aboutsummaryrefslogtreecommitdiff
path: root/odb/database.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-02-28 16:11:51 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-02-28 16:19:50 +0200
commit43b3c92c5dae2d851f45fbe04f1c9ac6d9a933f4 (patch)
treebcd68c89b1c539e02a4f40eda003b821b806f1df /odb/database.hxx
parentb377248ed27badc979e1fa02433baac0407557c7 (diff)
Add support for object pointers with two template parameters
Such as C++11 std::unique_ptr.
Diffstat (limited to 'odb/database.hxx')
-rw-r--r--odb/database.hxx32
1 files changed, 32 insertions, 0 deletions
diff --git a/odb/database.hxx b/odb/database.hxx
index b7e7926..64f9d44 100644
--- a/odb/database.hxx
+++ b/odb/database.hxx
@@ -47,10 +47,18 @@ namespace odb
typename object_traits<T>::id_type
persist (const P<T>& obj_ptr);
+ template <typename T, typename A1, template <typename, typename> class P>
+ typename object_traits<T>::id_type
+ persist (const P<T, A1>& obj_ptr);
+
template <typename T, template <typename> class P>
typename object_traits<T>::id_type
persist (P<T>& obj_ptr);
+ template <typename T, typename A1, template <typename, typename> class P>
+ typename object_traits<T>::id_type
+ persist (P<T, A1>& obj_ptr);
+
template <typename T>
typename object_traits<T>::id_type
persist (const typename object_traits<T>::pointer_type& obj_ptr);
@@ -77,10 +85,18 @@ namespace odb
void
reload (const P<T>& obj_ptr);
+ template <typename T, typename A1, template <typename, typename> class P>
+ void
+ reload (const P<T, A1>& obj_ptr);
+
template <typename T, template <typename> class P>
void
reload (P<T>& obj_ptr);
+ template <typename T, typename A1, template <typename, typename> class P>
+ void
+ reload (P<T, A1>& obj_ptr);
+
template <typename T>
void
reload (const typename object_traits<T>::pointer_type& obj_ptr);
@@ -109,10 +125,18 @@ namespace odb
void
update (const P<T>& obj_ptr);
+ template <typename T, typename A1, template <typename, typename> class P>
+ void
+ update (const P<T, A1>& obj_ptr);
+
template <typename T, template <typename> class P>
void
update (P<T>& obj_ptr);
+ template <typename T, typename A1, template <typename, typename> class P>
+ void
+ update (P<T, A1>& obj_ptr);
+
template <typename T>
void
update (const typename object_traits<T>::pointer_type& obj_ptr);
@@ -136,10 +160,18 @@ namespace odb
void
erase (const P<T>& obj_ptr);
+ template <typename T, typename A1, template <typename, typename> class P>
+ void
+ erase (const P<T, A1>& obj_ptr);
+
template <typename T, template <typename> class P>
void
erase (P<T>& obj_ptr);
+ template <typename T, typename A1, template <typename, typename> class P>
+ void
+ erase (P<T, A1>& obj_ptr);
+
template <typename T>
void
erase (const typename object_traits<T>::pointer_type& obj_ptr);