/// * A counter for detecting 50 move rule draws.
class Position {
-
- // No copy c'tor or assignment operator allowed
- Position(const Position&);
- Position& operator=(const Position&);
-
public:
Position() {}
- Position(const Position& p, Thread* t) { copy(p, t); }
- Position(const std::string& f, bool c960, Thread* t) { from_fen(f, c960, t); }
+ Position(const Position& p) { *this = p; }
+ Position(const std::string& f, bool c960) { from_fen(f, c960); }
+ Position& operator=(const Position&);
// Text input/output
- void copy(const Position& pos, Thread* th);
- void from_fen(const std::string& fen, bool isChess960, Thread* th);
+ void from_fen(const std::string& fen, bool isChess960);
const std::string to_fen() const;
void print(Move m = MOVE_NONE) const;
Color side_to_move() const;
int startpos_ply_counter() const;
bool is_chess960() const;
- Thread& this_thread() const;
int64_t nodes_searched() const;
void set_nodes_searched(int64_t n);
template<bool SkipRepetition> bool is_draw() const;
int64_t nodes;
int startPosPly;
Color sideToMove;
- Thread* thisThread;
StateInfo* st;
int chess960;
return st->capturedType;
}
-inline Thread& Position::this_thread() const {
- return *thisThread;
-}
-
#endif // !defined(POSITION_H_INCLUDED)