Boost logo

Boost :

From: Daryle Walker (darylew_at_[hidden])
Date: 2005-12-02 12:09:45


On 11/30/05 2:07 PM, "David Abrahams" <dave_at_[hidden]> wrote:

> Daryle Walker <darylew_at_[hidden]> writes:
>
>> On 11/29/05 4:27 PM, "Jason Kankiewicz" <jkankiewicz_at_[hidden]> wrote:
>>
>>> +# elif (defined(__GNUC__) && ((__GNUC__ >= 3 && __GNUC_MINOR__ >=5) ||
>>> __GNUC__ >= 4))
>>
>> Shouldn't the check for GCC 3.x be:
>>
>> __GNUC__ == 3 && __GNUC_MINOR__ >= 5
>>
>> instead of the currently over-broad version? Otherwise version numbers like
>> 4.6 or 5.9 would match on that phrase, which is wrong. They should match on
>> the "__GNUC__ >= 4" phrase instead.
>
> Well, that would certainly be clearer, but it is semantically
> equivalent, is it not?

Sort of; it happens to be equivalent for the 3.x series. The phrase implies
it's applicable to any higher series (4.x, 5.x, etc.), but that's wrong
because it fails numbers like 4.2. The "__GNUC__ >= 4" phrase saves you
from that. The next similar error may be more insidious.

>> The problem phrase should only match on
>> 3.5 through 3.9.x.
>
> "problem phrase?"

The phrase I'm originally talked about ("__GNUC__ >= 3 && __GNUC_MINOR__
>=5").

-- 
Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT hotmail DOT com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk