AliasSeq of T.tupleof for class and all base classes
    bitwise 
    bitwise.pvt at gmail.com
       
    Sat Sep 30 03:39:32 UTC 2017
    
    
  
As far as I can tell, this code should compile:
class B       { int a; }
class D1 : B  { int b; }
class D2 : D1 { int c; }
template TupleOf(Classes...)
{
     static if(Classes.length > 1)
         alias TupleOf = AliasSeq!(Classes[0].tupleof, 
TupleOf!(Classes[1..$]));
     else static if(Classes.length == 1)
         alias TupleOf = AliasSeq!(Classes[0].tupleof);
     else
         alias TupleOf = AliasSeq!();
}
int main(string[] argv)
{
     alias allClasses = AliasSeq!(D2, BaseClassesTuple!D2);
     alias allFields = TupleOf!allClasses;
     return 0;
}
But I get this:
Error: template instance AliasSeq!(b, a) AliasSeq!(b, a) is 
nested in both D1 and B
Error: template instance main.TupleOf!(D1, B, Object) error 
instantiating
instantiated from here: TupleOf!(D2, D1, B, Object)
Any ideas?
   Thanks
    
    
More information about the Digitalmars-d-learn
mailing list