Subject: Re: [boost] What to do with platform defining 'null' as preprocessor symbol?
From: Jeff Flinn (Jeffrey.Flinn_at_[hidden])
Date: 2012-08-24 08:57:30
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?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk