次のコードを検討してください。
static if (!is(MyStruct))
{
struct MyStruct
{
}
}
static if (is(MyStruct))
{
static assert(0);
}
私の当初の理解では、Dでは(グローバルスコープでの)宣言の順序は重要ではありません。
ただし、この場合、static if
sの順序によって、プログラムがコンパイルされるかどうかが異なります。
したがって、Dのコンパイル時の評価段階は、手続き型機能(C / C ++など)、宣言型機能、またはその他のものですか?それは現在何ですか、そしてそれは何になる予定ですか(2つが異なる場合)?
編集:
問題はここで終わらないことに気づきました。現在のモジュールのメンバーを列挙し、同じタイプの問題を作成するためのstatic if
使用はどうなりますか?.tupleof