Stockfish DD – types.h

今回はStockfishのtypes.hの解説です。このファイルはBonanza6で言うとshogi.hに相当するもので、チェスで使う基本的な構造体の定義が一式書かれています。このファイルの内容を頭においてからソースコードを読み進めれば細部まで理解しやすいでしょう。

 

 

 

Stockfish DD – types.h」への5件のフィードバック

  1. stockfishやaperyでは定数をenumで定義し、そのenumに対してのみ使う関数(PieceType type_of(Piece)など)をグローバルな位置に定義していることが多いように見受けられるのですが、クラスにしないのはなぜでしょうか?特にPiece型,PieceType型はクラス化したほうがわかりやすくなると思うのですが。

      • すばやい返信ありがとうございます。
        最適化の阻害ですか。どういう条件なのでしょうか。単純にソースにenum型を埋め込むのとclassのgetterを呼び出すのに違いが出たりするということでしょうか?

        • 色んなところで違いが出ますね。コードの意味的には等価なはずでも、ほとんどのコンパイラで異なるコードが生成されるかと思います。最近のコンパイラではどうだかわかりませんが…。

          そんなわけで、賢明なC++プログラマは、地雷を避けるためにenumを使うのでは…。

          • color_of(piece)という書き方を見ているとどうしてもpiece.color()と書きたくなってしまいます。しかし速度に影響が出るのは嫌ですね。なるほど、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です