On Friday, 1 March 2013 at 14:27:40 UTC, Andrea Fontana wrote:
I'm trying to do something like this. I don't know whether or not it's a good idea, i'm open to solutions and suggestions

struct MyStruct(WEIGHTS)
{
   string ...
   string ...

   alias WEIGHTS weights;
}

double likeness(T,T1)(ref in T1, ref in T2)
{
    // Here i do some complex calculus using struct fields
    // and using weights consts
}

enum FirstWeights : double
{

}

Ops. Here the complete message:

I'm trying to do something like this. I don't know whether or not it's a good idea, i'm open to solutions and suggestions

struct MyStruct(WEIGHTS)
{
   string ...
   string ...

   alias WEIGHTS weights;
}

double likeness(T,T1)(ref in T1, ref in T2)
{
    // Here i do some complex calculus using struct fields
    // and using weights consts
}

enum FirstWeights : double
{
    double foo = 0.3,
    double bar = 0.4
}

enum SecondWeights : double
{
    double foo = 0.3,
    double bar = 0.4
}

so:
auto s1 = MyStruct!FirstWeights ...
auto s2 = MyStruct!SecondWeights ...

likeness(s1,s2); // works

But I can't mix different type (s1,s2) on a single range or array, to check for likeness, is there a way? (or should I avoid template init a double[] weights field)

Reply via email to