https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86188
--- Comment #2 from Josh Marshall <joshua.r.marshall.1991 at gmail dot com> --- That looks similar enough. But I think the Bidirectional iterator tag in the case of sorting is expressive enough and for std::merge, either forward iterator tags or output iterator tags would express the desired characteristics suitably. If someone can't create an iterator without those needed tags but can create an iterator with the required characteristics I would be very surprised.