On 9/26/11 6:49 PM, bearophile wrote:
Jonathan M Davis:
Why is it bad? isIntegral was specifically designed for testing that a type was
one of byte, ubyte, short, ushort, int, uint, long, and ulong, and that's
exactly what it's doing.
Going back to my original post, is changing the semantics of isIntegral enough
to allow code like this to compile and run?
foreach (i; 1 .. BigInt(10)) {}
Bye,
bearophile
Well isIntegral was designed indeed for primitive integral types. The
problem with having isIntegral!BigInt dilutes the meaning of isIntegral
because there are significant differences between
Without having thought a lot of this, my impression is we need a sort of
isMonoid!(T, "+", 0) as a guard for iota.
Andrei