Subject: Re: [boost] [warnings] Are warnings acceptable artifactsfrom builds?
From: Michael Fawcett (michael.fawcett_at_[hidden])
Date: 2009-09-08 23:12:28
On Tue, Sep 8, 2009 at 8:19 PM, Thomas
> Michael Fawcett wrote:
>> Well, it's right. Â That's a constant conditional expression.
> You're trying to tease me, right?
No, sorry if I came off that way.
>> You can
>> either ignore the warning or put it in a template specialization which
>> would get rid of the warning. Â Is it defined in the standard that the
>> conditional will *always* get optimized away? Â If it isn't, that seems
>> like a reasonable warning.
> MSVC explicitly says whether a warning is just a performance warning, and C4127 is not a performance warning. It is a warning to inform the programmer about a possible mistake (IIRC, if(true) or if(false) don't trigger this warning). I don't understand what you mean by "... or put it in a template specialization which would get rid of the warning". Are you suggesting I should try to emulate the optimizer of the compiler, even if this would imply substantial code duplication?
I agree it's annoying. I'm curious (in the sense that I have no clue
what the answer is)...does MSVC generate the code in the else block
when it gives that warning?
>> I don't think that works with templates. Â Typically to silence errors
>> in template code, the user must put those pragmas around the point of
> I hope you're joking.
I wish. That's how it works with MSVC though.
>> The warnings I saw were int->bool, bool->int conversions, unused
>> parameters, and struct now seen as class.
>> I agree some warnings are nonsense, but there are some cases (just
>> mentioned) that should be silenced by proper code changes.
>> I don't think a strict "no warning" policy needs to be in place, which
>> I think is what Emil is against, but I think Boost should strive to
>> have as few as possible and there's too much low hanging fruit waiting
>> to be picked currently (causing lots of noise).
I think everyone can agree that Boost should strive for as few
warnings as possible, but forcing all libraries to be warning free on
all compilers is close to impossible.