How'd I store possible types for each item of a list of Variants ?

oleobal olivier.contrib at leobal.eu
Fri Sep 20 11:28:01 UTC 2019


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.


More information about the Digitalmars-d-learn mailing list