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)