Template mixin identifier as template alias parameter
    Jack Applegame 
    japplegame at gmail.com
       
    Sun Nov 11 01:04:15 PST 2012
    
    
  
I'm trying creating template for intrusive double-linked list:
mixin template node() {
   static if(is(this == struct))
     alias typeof(this)* E;
   else
     alias typeof(this) E;
   E prev, next;
}
struct list(alias N) {
   N.E head;
   N.E tail;
}
class A {
   mixin node;
}
list!A l;
All works great.
If it's need to store one object in two different lists I plan 
something like this:
class A {
   mixin node L1;
   mixin node L2;
}
list!(A.L1) l1;
list!(A.L2) l2;
But compiler doesn't compile that whith error:
"this is not in a class or struct scope|"
in line with
"alias typeof(this) E;"
    
    
More information about the Digitalmars-d-learn
mailing list