コンパイルタイムリフレクション

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メンバも取得できるものと思っていた.ぐぬぬ