Lars Gullik Bjønnes wrote:

> | Obviously, I'm in a pedantic mood. These two are casts:
> |    (bool)1;
> |    static_cast<bool>(1);
> | This one isn't:
> |    bool(1);
> 
> I think I still prefere this last one.

When we compile with a C++ compiler then it casts with
a static_cast<bool> a int to bool, therefore the warning.

When we use a C compiler then it uses the C-style cast (bool),
so I think the correctest way is to use static_cast<bool>,
but this is so ugly that I would prefer (bool).

I'm not sure if the bool constructor -bool::bool(int)-
is really as fast as the casts.


But sometime it would simple help to "code what you mean" :)

Here an example:

enum type{...}
bool match(type a, type b) { return (a & b); }

Does this not mean a==b? So why not write it down?
So we will get a boolean without any casts.

Peter



Reply via email to