言語仕様変更
今週はC++のリファレンス強化週間の予定でした。ところがつい前から気になっていた言語仕様を煮詰める方に一所懸命になってしまいました。
開発が進めば仕様変更はなるべく止めなければなりませんし、変えるなら今のうちだと。
現在の仕様で特に二つ気になっていました。
- クラスの要素を取得する演算子に '::' を使っていること
- moduleの存在意義が薄すぎること
C++から派生したJavaやC#、Dなどは '::' ではなく、メンバ変数やメンバ関数呼び出し時に使うのと同じ '.' を採用しています。*1
Xtalではとある理由から '::' を採用したのですが、やはり '.' で行く方で仕様を練り直しています。
XtalはRubyをお手本にして、moduleという概念を導入していました。Xtalはmoduleとclassに違いがほとんど無い様な実装にしていたのですが、これでは確かにmoduleの存在意義が微妙です。しかし、違いを持たせるためにclassの機能を制限する、というのもまた微妙な気がしています。
なのでもうmoduleは廃止の方向で考えています。
*1:無理が生じたのでやはり::に確定します