mirror of
https://github.com/boostorg/container.git
synced 2026-07-06 18:50:47 +02:00
Simplify code, avoiding unneded local variables.
This commit is contained in:
@@ -43,8 +43,7 @@ SegIter segmented_find_if_dispatch
|
||||
const local_iterator lf = traits::local(first);
|
||||
|
||||
if(sfirst == slast) {
|
||||
const local_iterator ll = traits::local(last);
|
||||
local_iterator r = (segmented_find_if)(lf, ll, pred);
|
||||
local_iterator r = (segmented_find_if)(lf, traits::local(last), pred);
|
||||
return traits::compose(sfirst, r);
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -123,45 +123,32 @@ SegIt find_last_if_scan(SegIt first, SegIt last, Pred pred, segmented_iterator_t
|
||||
|
||||
segment_iterator sfirst = traits::segment(first);
|
||||
segment_iterator slast = traits::segment(last);
|
||||
const local_iterator ll = traits::local(last);
|
||||
|
||||
if (sfirst == slast) {
|
||||
const local_iterator lf = traits::local(first);
|
||||
const local_iterator ll = traits::local(last);
|
||||
const local_iterator r = find_last_if_scan(lf, ll, pred, is_local_seg_t(), local_cat_t());
|
||||
const local_iterator r =
|
||||
find_last_if_scan(traits::local(first), ll, pred, is_local_seg_t(), local_cat_t());
|
||||
return traits::compose(sfirst, r);
|
||||
}
|
||||
|
||||
// Last segment (partial): [begin(slast), local(last))
|
||||
{
|
||||
const local_iterator lb = traits::begin(slast);
|
||||
const local_iterator ll = traits::local(last);
|
||||
if (lb != ll) {
|
||||
const local_iterator r = find_last_if_scan(lb, ll, pred, is_local_seg_t(), local_cat_t());
|
||||
if (r != ll)
|
||||
return traits::compose(slast, r);
|
||||
}
|
||||
}
|
||||
local_iterator r = find_last_if_scan(traits::begin(slast), ll, pred, is_local_seg_t(), local_cat_t());
|
||||
if (r != ll)
|
||||
return traits::compose(slast, r);
|
||||
|
||||
// Middle segments in reverse
|
||||
{
|
||||
segment_iterator scur = slast;
|
||||
for (--scur; scur != sfirst; --scur) {
|
||||
const local_iterator lb = traits::begin(scur);
|
||||
const local_iterator le = traits::end(scur);
|
||||
const local_iterator r = find_last_if_scan(lb, le, pred, is_local_seg_t(), local_cat_t());
|
||||
if (r != le)
|
||||
return traits::compose(scur, r);
|
||||
}
|
||||
for (--slast; slast != sfirst; --slast) {
|
||||
const local_iterator le = traits::end(slast);
|
||||
r = find_last_if_scan(traits::begin(slast), le, pred, is_local_seg_t(), local_cat_t());
|
||||
if (r != le)
|
||||
return traits::compose(slast, r);
|
||||
}
|
||||
|
||||
// First segment (partial): [local(first), end(sfirst))
|
||||
{
|
||||
const local_iterator lf = traits::local(first);
|
||||
const local_iterator le = traits::end(sfirst);
|
||||
const local_iterator r = find_last_if_scan(lf, le, pred, is_local_seg_t(), local_cat_t());
|
||||
if (r != le)
|
||||
return traits::compose(sfirst, r);
|
||||
}
|
||||
const local_iterator le = traits::end(sfirst);
|
||||
r = find_last_if_scan(traits::local(first), le, pred, is_local_seg_t(), local_cat_t());
|
||||
if (r != le)
|
||||
return traits::compose(sfirst, r);
|
||||
|
||||
return last;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user