https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120465
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Eligor Kadaf from comment #0) > However, it seems that in libstdc++ implementation of std::flat_map it's > value_type is std::tuple. No, the predicate is just called on the elements of a zip_view, and *that* has a tuple as its value_type. The actual flat_map::value_type is correct, but is not used by erase_if.