Dには、コンパイラのスイートにさらに別の優れた機能、つまり純粋関数への副作用のない呼び出しを禁止する機能を追加する可能性があると思います。
例えば
auto s = "a";
toStringz(a);
次のようにエラーが発生するはずです
a == "";
現在DMDでエラーが発生している
Error: == has no effect in expression (s == "")
このような機能は、プログラマーがインプレース(変異)セマンティクスを期待しているときに、誤って非変異アルゴリズムを呼び出すことを防ぎます。これにより、関数にGCCなどの属性を明示的にタグ付けする必要がなくなり__attribute((warn_unused_result))
ます__attribute((const))
。
DMDのtodoリストにそのような機能はありますか?