
Eric Niebler wrote:
I just committed the min/max macro fixes. I built and tested with vc6, vc7.1 and gcc (cygwin). This was a huge change and I have little doubt that it will cause problems somewhere. Let me know if you see anything out of the ordinary.
This could potentially have downstream effects, particularly if people are relying on the boost headers to #undef the min and max macros for them, which they no longer do.
With this check-in, I did *not* modify the regression tests to #define min and max to garbage. That caused too many problems.
In the future, calling min and max (member) functions will take some care on the part of all boost developers. I'd like to write up a document about what I learned. Is there a boost style guide, or an appropriate place for such a document?
Yes, you definitely need to document this if the normal calls of std::min(x,y) or std::max(x,y) no longer work properly when including Boost header files for normal developers also. I do know of the workaround for VC++ of (std::min)(x,y) and (std::max)(x,y) which I have to use in my own code when windows.h is included. If things have gotten more complicated than this when Boost headers are included, programmers must definitely be told about or else one is going to have many unhappy developers on one's hands. I would have said to you that you need to write documentation on the changes before committing the fixes, and not considering the importance of doing so as an aftermath, even if only Boost developers are involved, but since I am not a Boost developer myself (yet) I will shut up further about it. <g>