...ing logging 4.0

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

const(FAQ)をじっくり読む

const(FAQ)


D の const システムは独特なものなので、 多くの質問があると思われます。


* 何故 D には const があるのか?
* D の const の設計を決める原理は何か?
* 推移的 const とは何か?
* 頭部 const とは何か?
* 尾部 const とは何か?
* 論理的 const とは何か?
* 読み取り専用ビューの意味で readonly を使わないのは何故か?
* 何故 Java は const を排除したのか?
* C++ の const とどう違うのか?
* なぜ文字列がinvariantなのか?
* 関数の引数がデフォルトで const でないのは何故か?
* クラスの静的メンバは推移的 const でカバーされるのか?

論理的constをなくしたり,const性を推移的にしたりと,C++とはバランスの取り方が違うんだなと改めて思った.
これらの理由は理解しますが,標準ライブラリには void f(const(char)[] s){} と void f(string s){} の両方を定義するようにしてください><;
明示的にidupするの大変だし無駄ですぅ.