差分表示

  • 最後の更新で追加された行はこのように表示します。
  • 最後の更新で削除された行はこのように表示します。

*完全修飾名
Javaのような完全修飾名でのメソッド呼び出しはできないみたい。
完全修飾してもimportを書く必要があるようだ。


 private import std.regexp;
 linebuf = sub(linebuf, r"\s*//.*$", "");

 ×
 linebuf = std.regexp.sub(linebuf, r"\s*//.*$", "");


*Access Violation
interfaceを変えた場合など、依存関係が動いていないとAccess Violationを食らったりする。
よくわからなかったらとりあえずmake clean allで。

*lengthに注意
メンバ変数にlengthがあるときにメンバ関数の中で
 theta[length-1];
とすると動かなかった。
 theta[theta.length-1];
で。

*プロパティ
何も考えずにプロパティを書いてはまらないように
 float x(){ return pos.x; }
 void x(float x){ pos.x = x; }
 
 float y(){ return pos.y; }
 void y(float y){ pos.y = y; }
 
 Vec2 pos(){ return Vec2(x, y); }
 void pos(Vec2 pos){ pos_ = pos; }

 
 protected Vec2 pos_;
とかすると、pos() -> x() -> pos() -> ... と無限ループ
正しくは、
 float x(){ return pos_.x; }
オーバヘッドを考えてもこっちのほうがいいでしょう