From 83d327b237d67ca21317a682727f8c223bbd79e0 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 16 Mar 2025 18:01:10 +0200 Subject: [PATCH] ``: avoid continue in `search_n` --- stl/inc/algorithm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/stl/inc/algorithm b/stl/inc/algorithm index 8109baf3a16..50cbfb960cf 100644 --- a/stl/inc/algorithm +++ b/stl/inc/algorithm @@ -2384,7 +2384,11 @@ namespace ranges { // |=======|????????|========|??????... --_Mid2; - if (!_STD invoke(_Pred, _STD invoke(_Proj, *_Mid2), _Val)) { // mismatch; skip past it + if (_STD invoke(_Pred, _STD invoke(_Proj, *_Mid2), _Val)) { + if (_Mid2 == _Mid1) { // [_Mid1, _Mid2) is empty, so [_First, _Last) all match + return {_STD move(_First), _STD move(_Last)}; + } + } else { // mismatch; skip past it ++_Mid2; const auto _Delta = _RANGES distance(_First, _Mid2); @@ -2399,11 +2403,6 @@ namespace ranges { _Mid1 = _Last; _RANGES advance(_Last, _Delta); _Mid2 = _Last; - continue; - } - - if (_Mid2 == _Mid1) { // [_Mid1, _Mid2) is empty, so [_First, _Last) all match - return {_STD move(_First), _STD move(_Last)}; } } } else {