http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58191
--- Comment #3 from Daniel Krügler <daniel.kruegler at googlemail dot com> --- First, this issue should be categorized as belonging to the component "libstdc++", not to "c++". Second, the defect report is invalid, because std::upper_bound requires a minimum iterator category of "forward iterator", but boost::transform_iterator with a function object that returns a value (not a real reference) has an iterator category "input iterator", which is correct, since forward iterators are required to return a real reference for operator*.