• Dean Moldovan's avatar
    Handle all py::iterator errors · f7685826
    Dean Moldovan authored
    Before this, `py::iterator` didn't do any error handling, so code like:
    ```c++
    for (auto item : py::int_(1)) {
        // ...
    }
    ```
    would just silently skip the loop. The above now throws `TypeError` as
    expected. This is a breaking behavior change, but any code which relied
    on the silent skip was probably broken anyway.
    
    Also, errors returned by `PyIter_Next()` are now properly handled.
    f7685826
test_sequences_and_iterators.cpp 9.05 KB