#include <pytypes.h>
  
Public Types | |
| using | iterator_category = std::input_iterator_tag | 
| using | difference_type = ssize_t | 
| using | value_type = handle | 
| using | reference = const handle | 
| using | pointer = const handle * | 
Public Member Functions | |
| iterator & | operator++ () | 
| iterator | operator++ (int) | 
| reference | operator* () const | 
| pointer | operator-> () const | 
  Public Member Functions inherited from object | |
| object ()=default | |
| PYBIND11_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... | |
| bool | operator== (const handle &h) const | 
| bool | operator!= (const handle &h) const | 
| bool | check () const | 
| template<> | |
| void | cast () const | 
Static Public Member Functions | |
| static iterator | sentinel () | 
Friends | |
| bool | operator== (const iterator &a, const iterator &b) | 
| bool | operator!= (const iterator &a, const iterator &b) | 
Additional Inherited Members | |
  Public Attributes inherited from object | |
| bool | is_borrowed: handle(h) { if (is_borrowed) inc_ref() | 
  Protected Attributes inherited from handle | |
| PyObject * | m_ptr = nullptr | 
\rst Wraps a Python iterator so that it can also be used as a C++ input iterator
Caveat: copying an iterator does not (and cannot) clone the internal state of the Python iterable. This also applies to the post-increment operator. This iterator should only be used to retrieve the current value using operator*(). \endrst 
| using iterator::difference_type = ssize_t | 
| using iterator::iterator_category = std::input_iterator_tag | 
| using iterator::pointer = const handle * | 
| using iterator::reference = const handle | 
| using iterator::value_type = handle | 
      
  | 
  inlinestatic | 
\rst The value which marks the end of the iteration. it == iterator::sentinel() is equivalent to catching StopIteration in Python.
.. code-block:: cpp
void foo(py::iterator it) {
    while (it != py::iterator::sentinel()) {
 use *it ++it; } } \endrst 
 1.8.19