
Dave Abrahams wrote:
I see two alternatives: - either the fact that transform_iterator uses boost::result_of is removed from the release branch - or the release branch is fixed so that the feature is not buggy.
Either one of those is OK with me.
After digging into the transform_iterator's result_of problem further, I'm beginning to doubt the correctness of the documentation. I think that boost::result_of<UnaryFunction(Iterator::reference)> (which is described in the documentation) is incorrect, and the correct one is boost::result_of<const UnaryFunction(Iterator::reference)>. This is because 1. The dereference operator of transform_iterator is a const member function. 2. So, in the dereference operator, UnaryFunction is treated as a const object. Hmm, what should we do? Regards, Michel