Subject: Re: [boost] [Review:Algorithms] Order of args to clamp
From: Olaf van der Spek (ml_at_[hidden])
Date: 2011-09-26 10:40:31


On Mon, Sep 26, 2011 at 3:47 PM, Christian Holmquist
<c.holmquist_at_[hidden]> wrote:
> On 26 September 2011 06:02, Olaf van der Spek <ml_at_[hidden]> wrote:
>
>> On Mon, Sep 26, 2011 at 8:30 AM, Christian Holmquist
>> <c.holmquist_at_[hidden]> wrote:
>> > Sometimes types unfortunately have implicit conversion, and if the
>> compiler
>> > finds them (I guess that what's common_type deduces?),I might end up with
>> a
>> > bogus expression that unfortunately compiles.
>>
>> Could you give a concrete example (with 3 type clamp)?
>>
>
> enum A{a};
> enum B(b);
> main()
> {
> clamp(0, a, b);
> }
>

Right.
g++ 4.6: warning: enumeral mismatch in conditional expression: ‘A’ vs ‘B’

Is this really the fault of clamp() though?
The same 'mistake' can easily be made in normal code.

Olaf