std::ranges::advance(iter, r.begin());
VERIFY( iter == r.begin() );
- std::ranges::advance(iter, 99, r.end());
+ auto diff = std::ranges::advance(iter, 99, r.end());
VERIFY( iter == r.end() );
- std::ranges::advance(iter, -222, r.begin());
+ VERIFY( diff == 97 );
+ diff = std::ranges::advance(iter, -222, r.begin());
VERIFY( iter == r.begin() );
+ VERIFY( diff == -220 );
}
void
std::ranges::advance(iter, r.begin());
VERIFY( iter == r.begin() );
- std::ranges::advance(iter, 99, r.end());
+ auto diff = std::ranges::advance(iter, 99, r.end());
VERIFY( iter == r.end() );
- std::ranges::advance(iter, -222, r.begin());
+ VERIFY( diff == 97 );
+ diff = std::ranges::advance(iter, -222, r.begin());
VERIFY( iter == r.begin() );
+ VERIFY( diff == -220 );
}
void
std::ranges::advance(iter, r.end());
VERIFY( iter == r.end() );
- std::ranges::advance(iter, 99, r.end());
+ auto diff = std::ranges::advance(iter, 99, r.end());
VERIFY( iter == r.end() );
- std::ranges::advance(iter, 99, r.end());
+ VERIFY( diff == 99 ); // PR libstdc++/100833
+ diff = std::ranges::advance(iter, 99, r.end());
VERIFY( iter == r.end() );
+ VERIFY( diff == 99 );
iter = r.begin();
- std::ranges::advance(iter, 99, r.end());
+ diff = std::ranges::advance(iter, 99, r.end());
VERIFY( iter == r.end() );
- std::ranges::advance(iter, 99, r.end());
+ VERIFY( diff == 97 );
+ diff = std::ranges::advance(iter, 99, r.end());
VERIFY( iter == r.end() );
+ VERIFY( diff == 99 );
}
void
std::ranges::advance(iter, r2.end());
VERIFY( iter == r2.end() );
- std::ranges::advance(iter, 99, r2.end());
+ auto diff = std::ranges::advance(iter, 99, r2.end());
VERIFY( iter == r2.end() );
- std::ranges::advance(iter, 99, r2.end());
+ VERIFY( diff == 99 );
+ diff = std::ranges::advance(iter, 99, r2.end());
VERIFY( iter == r2.end() );
+ VERIFY( diff == 99 );
test_range<int, input_iterator_wrapper> r3(a);
iter = r3.begin();
- std::ranges::advance(iter, 99, r3.end());
+ diff = std::ranges::advance(iter, 99, r3.end());
VERIFY( iter == r3.end() );
- std::ranges::advance(iter, 99, r3.end());
+ VERIFY( diff == 97 );
+ diff = std::ranges::advance(iter, 99, r3.end());
VERIFY( iter == r3.end() );
+ VERIFY( diff == 99 );
}
void
std::ranges::advance(iter, r2.end());
VERIFY( iter == r2.end() );
- std::ranges::advance(iter, 99, r2.end());
+ auto diff = std::ranges::advance(iter, 99, r2.end());
VERIFY( iter == r2.end() );
- std::ranges::advance(iter, 99, r2.end());
+ VERIFY( diff == 99 );
+ diff = std::ranges::advance(iter, 99, r2.end());
VERIFY( iter == r2.end() );
+ VERIFY( diff == 99 );
test_range<int, output_iterator_wrapper> r3(a);
iter = r3.begin();
- std::ranges::advance(iter, 99, r3.end());
+ diff = std::ranges::advance(iter, 99, r3.end());
VERIFY( iter == r3.end() );
- std::ranges::advance(iter, 99, r3.end());
+ VERIFY( diff == 97 );
+ diff = std::ranges::advance(iter, 99, r3.end());
VERIFY( iter == r3.end() );
+ VERIFY( diff == 99 );
}
int