Thanks for the help!

On Friday, 20 September 2019 at 10:13:49 UTC, Ali Çehreli wrote:
I don't understand everything here

My bad, I guess once one spends too much time on a problem, it gets hard to explain. What if I put it this way ?

TypedParameter!(ulong, int, string) p1 = new TypedParameter!(ulong, int, string)();
  Parameter p2 = new TypedParameter!(ulong, int, string)();

writeln(typeid(p1.value.AllowedTypes)); // (ulong,int,immutable(char)[])
  writeln(typeid(p2.value.AllowedTypes)); // ()


My dream would be a way to make that last statement return the same thing as the penultimate one.. If that even is possible.


the 'typeid' expression and the 'TypeInfo' class hierarchy that it returns can be useful in this case.

I can get the correct TypeInfo through virtual functions by adding a method like this to Parameter and its sub-classes:

  override TypeInfo_Tuple allowedTypes()
  {
    return typeid(this.value.AllowedTypes);
  }


But as far as I know, I can't use this for instantiating templates, can I ? Especially since `this` doesn't exist at compile time.

Reply via email to