summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
bcbc9bf)
Unortunatly we have no guarantee that the call to
operator~(Color c) is resolved at compile time.
Perhaps the solution would be to use C++11 const_expr,
but for now simply use the good old-style ternary operator
that works as expected.
No functional change.
// as WIN, the position is classified WIN otherwise the current position is
// classified UNKNOWN.
// as WIN, the position is classified WIN otherwise the current position is
// classified UNKNOWN.
+ const Color Them = (Us == WHITE ? BLACK : WHITE);
+
Result r = INVALID;
Bitboard b = StepAttacksBB[KING][Us == WHITE ? wksq : bksq];
while (b)
Result r = INVALID;
Bitboard b = StepAttacksBB[KING][Us == WHITE ? wksq : bksq];
while (b)
- r |= Us == WHITE ? db[index(~Us, bksq, pop_lsb(&b), psq)]
- : db[index(~Us, pop_lsb(&b), wksq, psq)];
+ r |= Us == WHITE ? db[index(Them, bksq, pop_lsb(&b), psq)]
+ : db[index(Them, pop_lsb(&b), wksq, psq)];
if (Us == WHITE && rank_of(psq) < RANK_7)
{
if (Us == WHITE && rank_of(psq) < RANK_7)
{