You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
while (++_UFirst != _ULast) { // process one or two elements
auto _Prev = *_UFirst;
The last auto _Prev = *_UFirst; indicates that we constructed remove_cvref_t<iter_reference_t<I>> from iter_reference_t<I>, which is not guaranteed to be well-formed by the function's constraints.
I believe we should do _Vty _Prev(*_UFirst); instead.
STL/stl/inc/algorithm
Lines 10108 to 10116 in 1c59a20
The last
auto _Prev = *_UFirst;
indicates that we constructedremove_cvref_t<iter_reference_t<I>>
fromiter_reference_t<I>
, which is not guaranteed to be well-formed by the function's constraints.I believe we should do
_Vty _Prev(*_UFirst);
instead.Contrived testcase: https://godbolt.org/z/Gdb8qffdM
The text was updated successfully, but these errors were encountered: