ericniebler / range-v3

Range library for C++14/17/20, basis for C++20's std::ranges
Other
4.06k stars 437 forks source link

Fixing reverse_iterator's value_type. #1670

Closed brevzin closed 2 years ago

brevzin commented 2 years ago

reverse_iterator doesn't properly forward value_type, so in cases where the underlying range's value_type is not simply uncvref_t<reference>, views::reverse will end up destroying that information - which is especially problematic if you're reverseing a zip and then do some work that relies on the value_type not having reference semantics.