読者です 読者をやめる 読者になる 読者になる

Dゲンガーのみんな!ちゃんと契約してる?

私はあんまり。あーでもGunroarからはinvariant(クラス不変条件)だけは使うようにした。なぜかっていうと、DからOpenGLに誤った値(特にNaN)を渡すと、クラッシュはしないけど異常に処理が重くなるという動作をするので、それを防ぐため。

invariant {
    assert(pos.x <>= 0);
    // (..snip..)
}

とかいうコードを入れておけば、少なくとも位置情報がNaNになってプログラムが挙動不審になることは避けられる。クラスの各フィールドが取り得る値を明示するという意味でも、こんくらいのコストはかけてもいいかもね。

事前事後条件のうまい使い方が思いつかないのだが、なんかお勧めの活用方法ってある?ゲームプログラミングにおいて。