![]() |
Scarab
v2.9.0
Project 8 C++ Utility Library
|
#include <pytypes.h>

Classes | |
| struct | borrowed_t |
| struct | stolen_t |
Public Member Functions | |
| object ()=default | |
| __attribute__ ((deprecated("Use reinterpret_borrow<object>() or reinterpret_steal<object>()"))) object(handle h | |
| 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 () | |
Destructor; automatically calls handle::dec_ref() More... | |
| handle | release () |
| object & | operator= (const object &other) |
| object & | operator= (object &&other) noexcept |
| template<typename T > | |
| T | cast () const & |
| template<typename T > | |
| T | cast () && |
| object (handle h, borrowed_t) | |
| object (handle h, stolen_t) | |
| template<typename T > | |
| T | cast () const & |
| template<typename T > | |
| T | cast () && |
| template<> | |
| void | cast () const & |
| template<> | |
| void | cast () && |
Public Member Functions inherited from handle | |
| handle ()=default | |
The default constructor creates a handle with a nullptr-valued pointer. More... | |
| handle (PyObject *ptr) | |
Creates a handle from the given raw Python object pointer. More... | |
| PyObject * | ptr () const |
Return the underlying PyObject * pointer. More... | |
| PyObject *& | ptr () |
| const handle & | inc_ref () const & |
| const handle & | dec_ref () const & |
| template<typename T > | |
| T | cast () const |
| operator bool () const | |
Return true when the handle wraps a valid Python object. More... | |
| __attribute__ ((deprecated("Use obj1.is(obj2) instead"))) bool operator | |
| template<> | |
| void | cast () const |
Public Member Functions inherited from object_api< handle > | |
| iterator | begin () const |
| iterator | end () const |
| Return a sentinel which ends iteration. More... | |
| item_accessor | operator[] (handle key) const |
| item_accessor | operator[] (const char *key) const |
| See above (the only difference is that they key is provided as a string literal) More... | |
| obj_attr_accessor | attr (handle key) const |
| str_attr_accessor | attr (const char *key) const |
| See above (the only difference is that they key is provided as a string literal) More... | |
| args_proxy | operator* () const |
| object | operator* (object_api const &other) const |
| bool | contains (T &&item) const |
Check if the given item is contained within this object, i.e. item in obj. More... | |
| object | operator() (Args &&...args) const |
| __attribute__ ((deprecated("call(...) was deprecated in favor of operator()(...)"))) object call(Args &&... args) const | |
Get or set the object's docstring, i.e. obj.__doc__. More... | |
| bool | is (object_api const &other) const |
Equivalent to obj is other in Python. More... | |
| bool | is_none () const |
Equivalent to obj is None in Python. More... | |
| bool | equal (object_api const &other) const |
| Equivalent to obj == other in Python. More... | |
| bool | not_equal (object_api const &other) const |
| bool | operator< (object_api const &other) const |
| bool | operator<= (object_api const &other) const |
| bool | operator> (object_api const &other) const |
| bool | operator>= (object_api const &other) const |
| object | operator- () const |
| object | operator- (object_api const &other) const |
| object | operator~ () const |
| object | operator+ (object_api const &other) const |
| object | operator+= (object_api const &other) const |
| object | operator-= (object_api const &other) const |
| object | operator*= (object_api const &other) const |
| object | operator/ (object_api const &other) const |
| object | operator/= (object_api const &other) const |
| object | operator| (object_api const &other) const |
| object | operator|= (object_api const &other) const |
| object | operator& (object_api const &other) const |
| object | operator&= (object_api const &other) const |
| object | operator^ (object_api const &other) const |
| object | operator^= (object_api const &other) const |
| object | operator<< (object_api const &other) const |
| object | operator<<= (object_api const &other) const |
| object | operator>> (object_api const &other) const |
| object | operator>>= (object_api const &other) const |
| int | ref_count () const |
| Return the object's current reference count. More... | |
| handle | get_type () const |
| Return a handle to the Python type object underlying the instance. More... | |
Public Attributes | |
| bool | is_borrowed: handle(h) { if (is_borrowed) inc_ref() |
Friends | |
| template<typename T > | |
| T | reinterpret_borrow (handle) |
| template<typename T > | |
| T | reinterpret_steal (handle) |
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.
|
default |
|
inline |
Destructor; automatically calls handle::dec_ref()
|
inline |
| __attribute__ | ( | (deprecated("Use reinterpret_borrow<object>() or reinterpret_steal<object>()")) | ) |
| T cast | ( | ) | const & |
| T cast | ( | ) | && |
|
inline |
|
friend |
Declare that a handle or PyObject * is a certain type and borrow the reference. The target type T must be object or one of its derived classes. The function doesn't do any conversions or checks. It's up to the user to make sure that the target type is correct.
.. code-block:: cpp
PyObject *p = PyList_GetItem(obj, index); py::object o = reinterpret_borrow<py::object>(p);
or py::tuple t = reinterpret_borrow<py::tuple>(p); // <– p must be already be a tuple
|
friend |
1.8.13