Templates - Numeric Types only

Jarrett Billingsley jarrett.billingsley at gmail.com
Thu Aug 6 18:29:43 PDT 2009


On Thu, Aug 6, 2009 at 9:19 PM, Andrei
Alexandrescu<SeeWebsiteForEmail at erdani.org> 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.



More information about the Digitalmars-d mailing list