id summary reporter owner description type status milestone component version severity resolution keywords cc 13202 adjacent_filtered postcondition docs differ from behaviour Tony Lewis Neil Groves "I think the documentation for `adjacent_filtered`'s postcondition, ie: > For all adjacent elements `[x,y]` in the returned range, `bi_pred(x,y)` is `true`. …isn't quite right. For example, this: {{{ #!cpp #include #include #include int main() { const std::vector a = { 0, 1, 2, 3, 4, 5, 6 }; const auto b = a | boost::adaptors::adjacent_filtered( [] (const int &x, const int &y) { return ( y % 2 == 1 ) && ( y == x + 1 ); } ); for (const auto &x : b) { std::cerr << x << ""\n""; } } }}} …outputs: {{{ 0 1 3 5 }}} Yet two of the pairs of adjacent elements `[x,y]` in this range fail `bi_pred(x,y)` (because they differ by 2, not 1). I think it's more like: `bi_pred` is true on each element in the returned range preceded by the element that preceded it in the //original// range (not in the //returned// range)." Bugs new To Be Determined range Boost Development Trunk Optimization range,adjacent_filtered,documentation,postcondition,predicate,adaptor