https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78830
Piotr Nycz <piotrwn1 at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |piotrwn1 at gmail dot com --- Comment #5 from Piotr Nycz <piotrwn1 at gmail dot com> --- Still not "enhanced" (gcc9). CLANG with its std-lib correctly (IMO) does not compile it. I understand this is UB - but implementation might suggest it is checked that iterator is biderectional (at least ) but this check has no effect. ``` template<typename _BidirectionalIterator> inline _BidirectionalIterator prev(_BidirectionalIterator __x, typename iterator_traits<_BidirectionalIterator>::difference_type __n = 1) { // concept requirements __glibcxx_function_requires(_BidirectionalIteratorConcept< _BidirectionalIterator>) std::advance(__x, -__n); return __x; } ``` it is very troublesome to realize that there is something wrong here - when you have UB="very long time consuming loop (LONG_MAX iteration probably)" Is there anything that can be done to increase importance of this enhancement?