Use a const pointer-to-member array for attacks

Allow the compiler to optimize member
function access.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2008-10-18 08:54:18 +02:00
parent aa7121297d
commit 3b857d1625
4 changed files with 10 additions and 15 deletions

View File

@@ -48,21 +48,18 @@ Key Position::zobSideToMove;
Value Position::MgPieceSquareTable[16][64];
Value Position::EgPieceSquareTable[16][64];
Piece_attacks_fn piece_attacks_fn[7];
const Piece_attacks_fn piece_attacks_fn[] =
{ 0, 0,
&Position::knight_attacks,
&Position::bishop_attacks,
&Position::rook_attacks,
&Position::queen_attacks,
&Position::king_attacks };
////
//// Functions
////
void init_piece_attacks_fn() {
piece_attacks_fn[KNIGHT] = &Position::knight_attacks;
piece_attacks_fn[BISHOP] = &Position::bishop_attacks;
piece_attacks_fn[ROOK] = &Position::rook_attacks;
piece_attacks_fn[QUEEN] = &Position::queen_attacks;
piece_attacks_fn[KING] = &Position::king_attacks;
}
/// Constructors
Position::Position(const Position &pos) {