http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59508
--- Comment #4 from Oleg Endo <olegendo at gcc dot gnu.org> --- (In reply to Daniel Krügler from comment #3) > (In reply to Oleg Endo from comment #2) > > Could you please elaborate? > > My response was referring to the generic code that you provided, because > that would also be applied to user-provided specializations of library > containers and there iterator types. So it would only be feasible for a > special scenario where the library would tag its internal types and where it > can proof that the actual predicate used is equivalent to the usage of the > associative container's predicate. Ah yes. Of course it would need to check whether the iterator type is a type of the library's standard implementation, like _Rb_tree_iterator<T> instead of simply checking for std::set::iterator.