LSSTApplications
18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
LSSTDataManagementBasePackage
|
A shared pointer that tracks both a C++ object and its associated PyObject. More...
#include <PySharedPtr.h>
Public Types | |
using | element_type = T |
Public Member Functions | |
PySharedPtr (T *const ptr) | |
Create a pointer that counts as an extra reference in the Python environment. More... | |
PySharedPtr (PySharedPtr const &) noexcept=default | |
PySharedPtr (PySharedPtr &&) noexcept=default | |
PySharedPtr & | operator= (PySharedPtr const &) noexcept=default |
PySharedPtr & | operator= (PySharedPtr &&) noexcept=default |
~PySharedPtr () noexcept=default | |
PySharedPtr (std::shared_ptr< T > r) noexcept | |
operator std::shared_ptr< T > () noexcept | |
T * | get () const noexcept |
A shared pointer that tracks both a C++ object and its associated PyObject.
Each group of PySharedPtr for a given object collectively counts as one reference to that object for the purpose of Python garbage collection.
A PySharedPtr is implicitly convertible to and from a std::shared_ptr to minimize API impact. Any shared_ptr
created this way will (I think) keep the Python reference alive, as described above.
Definition at line 49 of file PySharedPtr.h.
using lsst::utils::python::PySharedPtr< T >::element_type = T |
Definition at line 51 of file PySharedPtr.h.
|
inlineexplicit |
Create a pointer that counts as an extra reference in the Python environment.
ptr | a pointer to a pybind11-managed object. |
Definition at line 59 of file PySharedPtr.h.
|
defaultnoexcept |
|
defaultnoexcept |
|
defaultnoexcept |
|
inlinenoexcept |
Definition at line 78 of file PySharedPtr.h.
|
inlinenoexcept |
Definition at line 81 of file PySharedPtr.h.
|
inlinenoexcept |
Definition at line 79 of file PySharedPtr.h.
|
defaultnoexcept |
|
defaultnoexcept |