
On 8/23/2012 1:58 PM, Eric Niebler wrote:
On 8/23/2012 1:42 PM, Jeff Flinn wrote:
Might it not be better to provide some platform specific config file(s) that undef offending macro names. In the case of nil in fusion, I'd hate to see a loss in clarity because of some bad platform practice. I've been able to address these issues by #undef'ing in just a few places.
Bad idea, IMO. Boost shouldn't be messing with things defined in 3rd party headers, especially platform headers. #including a boost header shouldn't change the meaning of existing code, or make valid platform code invalid. The same reason went into the Boost min/max guidelines and Herculean effort to bring our codebase into compliance with them.
As Stephan L mentions, BOOST_PREVENT_MACRO_SUBSTITUTION doesn't appear to alleviate issues with object macros. As you said the effort to deal with min/max was herculean. min/max was pretty apparent with such prevalent use. How do we root out other cases of platform macro abuse and deal with them? Jeff