Classes | Public Member Functions | Public Attributes | List of all members
object Class Reference

#include <pytypes.h>

Inheritance diagram for object:
Inheritance graph
[legend]

Classes

struct  borrowed_t
 
struct  stolen_t
 

Public Member Functions

template<typename T >
T cast () const &
 
template<typename T >
T cast () &&
 
template<typename T >
T cast () const &
 
template<typename T >
T cast () &&
 
template<>
void cast () const &
 
template<>
void cast () &&
 
 object ()=default
 
 object (const object &o)
 Copy constructor; always increases the reference count. More...
 
 object (object &&other) noexcept
 Move constructor; steals the object from other and preserves its reference count. More...
 
 object (handle h, borrowed_t)
 
 object (handle h, stolen_t)
 
objectoperator= (const object &other)
 
objectoperator= (object &&other) noexcept
 
 PYBIND11_DEPRECATED ("Use reinterpret_borrow<object>() or reinterpret_steal<object>()") object(handle h
 
handle release ()
 
 ~object ()
 Destructor; automatically calls handle::dec_ref() More...
 
- Public Member Functions inherited from handle
template<typename T >
T cast () const
 
template<>
void cast () const
 
bool check () const
 
const handledec_ref () const &
 
 handle ()=default
 The default constructor creates a handle with a nullptr-valued pointer. More...
 
template<typename T , detail::enable_if_t< detail::is_pyobj_ptr_or_nullptr_t< T >::value, int > = 0>
 handle (T ptr)
 
template<typename T , detail::enable_if_t< detail::all_of< detail::none_of< std::is_base_of< handle, T >, detail::is_pyobj_ptr_or_nullptr_t< T >>, std::is_convertible< T, PyObject *>>::value, int > = 0>
 handle (T &obj)
 Enable implicit conversion through T::operator PyObject *(). More...
 
const handleinc_ref () const &
 
 operator bool () const
 Return true when the handle wraps a valid Python object. More...
 
bool operator!= (const handle &h) const
 
bool operator== (const handle &h) const
 
PyObject * ptr () const
 Return the underlying PyObject * pointer. More...
 
PyObject *& ptr ()
 

Public Attributes

bool is_borrowed: handle(h) { if (is_borrowed) { inc_ref()
 

Additional Inherited Members

- Static Public Member Functions inherited from handle
static std::size_t inc_ref_counter ()
 
- Protected Attributes inherited from handle
PyObject * m_ptr = nullptr
 

Detailed Description

Holds a reference to a Python object (with reference counting)

Like handle, the object class is a thin wrapper around an arbitrary Python object (i.e. a PyObject * in Python's C API). In contrast to handle, it optionally increases the object's reference count upon construction, and it always* decreases the reference count when the object instance goes out of scope and is destructed. When using object instances consistently, it is much easier to get reference counting right at the first attempt.

Definition at line 309 of file pytypes.h.

Constructor & Destructor Documentation

◆ object() [1/5]

object::object ( )
default

◆ object() [2/5]

object::object ( const object o)
inline

Copy constructor; always increases the reference count.

Definition at line 319 of file pytypes.h.

◆ object() [3/5]

object::object ( object &&  other)
inlinenoexcept

Move constructor; steals the object from other and preserves its reference count.

Definition at line 321 of file pytypes.h.

◆ ~object()

object::~object ( )
inline

Destructor; automatically calls handle::dec_ref()

Definition at line 323 of file pytypes.h.

◆ object() [4/5]

object::object ( handle  h,
borrowed_t   
)
inline

Definition at line 377 of file pytypes.h.

◆ object() [5/5]

object::object ( handle  h,
stolen_t   
)
inline

Definition at line 378 of file pytypes.h.

Member Function Documentation

◆ cast() [1/6]

template<typename T >
T object::cast ( ) const &

◆ cast() [2/6]

template<typename T >
T object::cast ( ) &&

◆ cast() [3/6]

template<typename T >
T object::cast ( ) const &

Definition at line 1129 of file cast.h.

◆ cast() [4/6]

template<typename T >
T object::cast ( ) &&

Definition at line 1133 of file cast.h.

◆ cast() [5/6]

template<>
void object::cast ( ) const &
inline

Definition at line 1137 of file cast.h.

◆ cast() [6/6]

template<>
void object::cast ( ) &&
inline

Definition at line 1141 of file cast.h.

◆ operator=() [1/2]

object& object::operator= ( const object other)
inline

Definition at line 336 of file pytypes.h.

◆ operator=() [2/2]

object& object::operator= ( object &&  other)
inlinenoexcept

Definition at line 346 of file pytypes.h.

◆ PYBIND11_DEPRECATED()

object::PYBIND11_DEPRECATED ( "Use reinterpret_borrow<object>() or reinterpret_steal<object>()"  )

◆ release()

handle object::release ( )
inline

Resets the internal pointer to nullptr without decreasing the object's reference count. The function returns a raw handle to the original Python object.

Definition at line 330 of file pytypes.h.

Member Data Documentation

◆ is_borrowed

bool object::is_borrowed

Definition at line 315 of file pytypes.h.


The documentation for this class was generated from the following files:


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:41:03