On Mon, 20 Jun 2011 09:17:56 -0400, Daniel Gibson <[email protected]> wrote:

Am 20.06.2011 14:47, schrieb Steven Schveighoffer:
On Sun, 19 Jun 2011 19:42:22 -0400, bearophile
<[email protected]> wrote:

Timon Gehr:

Maybe DMD could warn on nonsense of the form x != x.

Right. This thread is very good food for this enhancement request of
mine:
http://d.puremagic.com/issues/show_bug.cgi?id=5540

Vote for this enhancement :-)

I don't think this is a good idea.  Generic code could result in an
error where there shouldn't be.  For example:

int foo(T)()
{
   if(T.sizeof == char.sizeof)
     ...
}

Would this fail to compile where T == char?  What about if T == ubyte?

Generic programming sometimes results in silly code that is perfectly
acceptable as generic code, and we need to take this into account before
making decisions assuming a person is writing the code.

-Steve

It probably makes more sense to use static if in that case - and static
if could be an exception for these rules.

static if has different semantics than if (it doesn't create a scope), so maybe I want to use if. But even so, static if is just as likely to contain these bugs as a normal if. Both use an expression to determine whether the if should run or not, and there are quite a few constructs that can be used in a static if expression.

-Steve

Reply via email to