X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=4dcbbf76ec80b24531fe414820fb7fe0781f8dc4;hp=bf9bba3d492f8529903946564fe6c14ca12ab024;hb=ff211469bafcdc36c8964ae0a4b87ae277cef51a;hpb=d4f14a8e83de85073483adacb22b760287d338ac diff --git a/src/position.h b/src/position.h index bf9bba3d..4dcbbf76 100644 --- a/src/position.h +++ b/src/position.h @@ -213,14 +213,13 @@ public: Bitboard attacks_to(Square s) const; Bitboard attacks_to(Square s, Color c) const; bool is_check() const; - bool piece_attacks_square(Square f, Square t) const; bool white_pawn_attacks_square(Square f, Square t) const; bool black_pawn_attacks_square(Square f, Square t) const; - bool knight_attacks_square(Square f, Square t) const; - bool bishop_attacks_square(Square f, Square t) const; - bool rook_attacks_square(Square f, Square t) const; - bool queen_attacks_square(Square f, Square t) const; - bool king_attacks_square(Square f, Square t) const; + + template + Bitboard piece_attacks_square(Square f, Square t) const; // Dispatch at compile-time + + bool piece_attacks_square(Square f, Square t) const; // Dispatch at run-time // Properties of moves bool move_is_legal(Move m) const; @@ -590,24 +589,9 @@ inline bool Position::black_pawn_attacks_square(Square f, Square t) const { return bit_is_set(pawn_attacks(BLACK, f), t); } -inline bool Position::knight_attacks_square(Square f, Square t) const { - return bit_is_set(piece_attacks(f), t); -} - -inline bool Position::bishop_attacks_square(Square f, Square t) const { - return bit_is_set(piece_attacks(f), t); -} - -inline bool Position::rook_attacks_square(Square f, Square t) const { - return bit_is_set(piece_attacks(f), t); -} - -inline bool Position::queen_attacks_square(Square f, Square t) const { - return bit_is_set(piece_attacks(f), t); -} - -inline bool Position::king_attacks_square(Square f, Square t) const { - return bit_is_set(piece_attacks(f), t); +template +Bitboard Position::piece_attacks_square(Square f, Square t) const { + return bit_is_set(piece_attacks(f), t); } inline bool Position::pawn_is_passed(Color c, Square s) const {