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