]> git.sesse.net Git - stockfish/blobdiff - src/position.h
Don't update killers for evasions
[stockfish] / src / position.h
index 7842ed8b337254ea5d2db61f537644056146e212..e1bdf39e2b5bbbbf7c398016301672cebd17ab4a 100644 (file)
 #include <cassert>
 
 #include "bitboard.h"
-#include "move.h"
 #include "types.h"
 
 
 /// The checkInfo struct is initialized at c'tor time and keeps info used
 /// to detect if a move gives check.
+class Position;
 
 struct CheckInfo {
 
-    explicit CheckInfo(const Position&);
+  explicit CheckInfo(const Position&);
 
-    Bitboard dcCandidates;
-    Bitboard pinned;
-    Bitboard checkSq[8];
+  Bitboard dcCandidates;
+  Bitboard pinned;
+  Bitboard checkSq[8];
 };
 
 
@@ -44,7 +44,6 @@ struct CheckInfo {
 /// object to its previous state when we retract a move. Whenever a move
 /// is made on the board (by calling Position::do_move), an StateInfo object
 /// must be passed as a parameter.
-class Position;
 
 struct StateInfo {
   Key pawnKey, materialKey;
@@ -84,16 +83,17 @@ struct StateInfo {
 
 class Position {
 
-  // No defaul, copy c'tor or assignment allowed, default c'tor will not be
-  // generated anyhow because of user-defined c'tors.
+  // No copy c'tor or assignment operator allowed
   Position(const Position&);
   Position& operator=(const Position&);
 
 public:
-  Position(const Position& pos, int threadID);
-  Position(const std::string& fen, bool isChess960, int threadID);
+  Position() {}
+  Position(const Position& pos, int th) { copy(pos, th); }
+  Position(const std::string& fen, bool isChess960, int th);
 
   // Text input/output
+  void copy(const Position& pos, int th);
   void from_fen(const std::string& fen, bool isChess960);
   const std::string to_fen() const;
   void print(Move m = MOVE_NONE) const;