https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78830
--- Comment #15 from Andrzej Krzemienski <akrzemi1 at gmail dot com> --- How come? [algorithms.requirements], paragraph 4, bullet 5 (http://eel.is/c++draft/algorithms#requirements-4.5) says: If an algorithm's template parameter is named BidirectionalIterator, BidirectionalIterator1, or BidirectionalIterator2, the template argument shall meet the Cpp17BidirectionalIterator requirements