$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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?
Jeff