Problems instantiating template class

Mek101 anEmailAddress at mail.somewhere
Sat Apr 6 17:30:45 UTC 2019


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.


More information about the Digitalmars-d-learn mailing list