Jarrett Billingsley wrote:
On Thu, Aug 6, 2009 at 9:19 PM, Andrei
Alexandrescu<[email protected]> wrote:
Kevin wrote:
Hi,
simple Question:
Is it possible to allow just numeric types in templates?
For example to create a Vector Class like this:

class Vector(T:"numeric" = float, int size = 4)

Thanks,
Kevin
import std.traits;

class Vector(T, int size = 4) if (isNumeric!T)
{
   ...
}

Unfortunately,

struct Vec(T) if(isNumeric!T) {}
struct Vec(T) {}
Vec!(int) x; // error

foo.d(14): Error: template instance Vec!(int) matches more than one
template declaration, Vec(T) if (isNumeric!(T)) and Vec(T)

*sigh*

Wouldn't it be nice.

struct Vec(T) if(isNumeric!T) {}
struct Vec(T) if(!isNumeric!T) {}

is actually superior because it's more modular; the semantics of the latter does not depend on the presence of the former.

Andrei

Reply via email to