diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-08-14 11:27:35 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-08-14 11:27:35 +0200 |
commit | 8ceee297981402eb5331f357b27ebfac11706ec4 (patch) | |
tree | bb4d5d26bb450a3f0f0e499360f90d900b557521 /odb/tr1/lazy-ptr.hxx | |
parent | 9bf4ff12e6d96870fa48785846de5c96411ec5ea (diff) |
Reimplement lazy_weak_ptr lock() to preserve database type
Now we initialize the returned lazy_shared_ptr with the same loader
function as the one set for weak_ptr.
Diffstat (limited to 'odb/tr1/lazy-ptr.hxx')
-rw-r--r-- | odb/tr1/lazy-ptr.hxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/odb/tr1/lazy-ptr.hxx b/odb/tr1/lazy-ptr.hxx index 4579090..1c5d8ca 100644 --- a/odb/tr1/lazy-ptr.hxx +++ b/odb/tr1/lazy-ptr.hxx @@ -134,6 +134,13 @@ namespace odb template <class Y> friend class lazy_shared_ptr; template <class Y> friend class lazy_weak_ptr; + // For lazy_weak_ptr::lock(). + // + lazy_shared_ptr (const std::tr1::shared_ptr<T>& p, + const lazy_ptr_impl<T>& i) + : p_ (p), i_ (i) {} + + private: mutable std::tr1::shared_ptr<T> p_; mutable lazy_ptr_impl<T> i_; }; |