...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

@disableな関数をmixinするとどうなるか

mixin template Foo(T)
{
  void f(){}
  void f(T){}
}
template Bar(T)
{
  mixin Foo!T;
  @disable void f(){}
  @disable void f(T){}
}

mixin template Boo(T)
{
  @disable void f(){}
  @disable void f(T){}
}
template Woo(T)
{
  mixin Boo!T;
  void f(){}
  void f(T){}
}

void main()
{
  //Bar!int.f();  // disable
  //Bar!int.f(1); // disable
  
  Woo!int.f();
  Woo!int.f(1);
}

mixinした関数に付いている @disable は無視されるようだ.
ということは,diffのネタは @disable とはちょっと違うな・・・.