コンパイルタイムリフレクション
std.range & std.algorithmについてはまた後でまとめるとして,特性に関して.
module bar; struct Bar { private bool bar; }
とまぁ用意して__traitsを使おうとすると
import bar; void main() { Bar bar; __traits(getMember, bar, "bar"); //-> Error: struct bar.Bar member bar is not accessible }
というエラーになる.Rubyとかのランタイムリフレクションじゃないのは確かだけど,てっきりprivateメンバも取得できるものと思っていた.ぐぬぬ…