I'm rewriting from C# a small library of mine to practice with D.
I have a class:
class WeightedRandom(T, W = float) if(isNumeric!W)
{
// Fields
private W[T] _pairs;
// The total sum of all the weights;
private W _probabilities;
/// Code...
}
And when I try to instantiate an object in a unittest
unittest
{
auto wrnd = new WeightedRandom!char();
wrnd.normalizeAt(120.55);
}
Compilation fails with the following error:
source/utils/weightedRandom.d(25,18): Error: cannot pass type
char as a function argument
source/utils/weightedRandom.d(90,18): Error: template instance
`utils.weightedrandom.WeightedRandom!(char, float)` error
instantiating
/usr/bin/dmd failed with exit code 1.
Same exact error with:
WeightedRandom!(char)();
WeightedRandom!(string, float)();
It seems like dmd thinks I'm calling a function while I'm trying
to instantiate the object.