...ing logging 4.0

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

std.bindがdmd2で動かなかった原因いくつか

  • ""をchar[]で返していた.
  • struct Tuple(TL...)にもstruct Tuple()にもprependTメンバがあるのに,Tuple!(U).prependT!(T)だけ動いてTuple!().prependT!(T)は動かなかった.
    • 当時はstruct Tuple!(TL...){alias Tuple meta;} struct Tuple!(){alias Tuple meta;}みたいなことをして回避していたらしいが現在はこれでは回避できなくなったようだ.
  • const EmptySlot NullAlias;のとき,typeof(NullAlias)はdmd1ではEmptySlsotな一方でdmd2ではconst(EmptySlot)なので,static if(is(typeof(NullAlias) == EmptySlot)){...}の意味が変化していた.

そんな感じ.