ENH: Makeiterator_policies::sequence_fast_readonly
satisfy ranges concept.
#4127
Labels
iterator_policies::sequence_fast_readonly
satisfy ranges concept.
#4127
Discussed in #3850
Originally posted by zwhfly April 7, 2022
I found out that
pybind11::detail::iterator_policies::sequence_fast_readonly
is not default constructible.This makes the type returned by
pybind11::args::begin()
not satisfying thestd::input_or_output_iterator
concept.I added the default ctor directly in the header file: zwhfly@bfa326a, and made a test.
Given
using Iter = decltype(std::declval<pybind11::args>().begin());
, this change makesstd::constructible_from<Iter>
true, which makesstd::default_initializable<Iter>
true, which makesstd::weakly_incrementable<Iter>
true, which makesstd::input_or_output_iterator<Iter>
true, which makespybind11::args
satisfystd::ranges::range
concept, which makes the following code work:I'm not familiar with the source code of pybind11, so I wonder would this change cause any bad effect that I don't know of?
Could it be added?
The text was updated successfully, but these errors were encountered: