Introduce and use struct MoveList

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2011-07-02 13:33:06 +01:00
parent 7ac6e3b850
commit 53ccba8457
6 changed files with 38 additions and 37 deletions

View File

@@ -36,4 +36,18 @@ enum MoveType {
template<MoveType>
MoveStack* generate(const Position& pos, MoveStack* mlist);
template<MoveType T>
struct MoveList {
explicit MoveList(const Position& pos) : cur(mlist), last(generate<T>(pos, mlist)) {}
void operator++() { cur++; }
bool end() const { return cur == last; }
Move move() const { return cur->move; }
int size() const { return last - mlist; }
private:
MoveStack mlist[MAX_MOVES];
MoveStack *cur, *last;
};
#endif // !defined(MOVEGEN_H_INCLUDED)