View mode: basic / threaded / horizontal-split · Log in · Help
November 10, 2006
adding properties with mixins
Actually there is no direct possibility to do this. But it is possible
in two steps:

template Prop( T, alias value, T msk, int shift ){
   public T opCall(){
       return (( value & msk ) >> shift );
   }
   public void opCall( T aValue){
       value = ( value & ~msk ) | (( aValue << shift ) & msk );
   }
}

struct S{

   private int priv_data;

   private mixin Prop!( int, priv_data, 0x07, 0 ) a_;
   public alias a_.opCall a;

   private mixin Prop!( int, priv_data, 0x018, 3 ) b_;
   public alias b_.opCall b;
}


void main(){
   S s;
   s.a = 3;
   int v = s.a;
   s.b = 2;
}


What I want, is to ask for a possibility to make the
instantiating-aliasing step in one step, without the useless mixin name
(a_,b_). Is that possible, or can we add a language feature to make that
possible?
November 10, 2006
Re: adding properties with mixins
It may be possible, but it's kinda hard to fit in at the moment.
Top | Discussion index | About this forum | D home