< D Programming 
      A mixin is the possibility to make a copy of a template to a specified place.
template t(T){
  T get(){
    return mValue;
  }
}
This alone makes no sense. But if you want to insert it into a class, which has got a member variable mValue this can make sense.
class C{
  private int mValue;
  mixin t!(int);
}
You can use mixins to assemble a class out of pieces.
Make an outer class know the mixin
If you need a way to make your mixin known to the outer class, you can use static constructors.
template t(T){
  static this(){
    sMixinCounter++;
  }
}
class C{
  private static int sMixinCounter;
  private int mValue;
  mixin t!(int);
}
If you want to use multiple of such mixin, they have to be named, to avoid linker errors.
class C{
  private static int sMixinCounter;
  private int mValue;
  mixin t!(int) t1;
  mixin t!(int) t2;
}
    This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.