9 #include <boost/utility/enable_if.hpp>
94 return (0xffffff88&(
square-0x12)&
95 ((
unsigned int)((
square&0x77)^0x12)+0xffffff77))==0;
131 return squareForBlack<BLACK>();
133 return squareForBlack<WHITE>();
138 return squareForBlack<WHITE>();
149 return squareForBlack<WHITE>();
203 return canPromote<BLACK>();
205 return canPromote<WHITE>();
214 return (((v+0xefull)^v)&0x110ull)!=0x110ull;
254 return result+=offset;
258 return result-=offset;
268 bool yLe(
typename boost::enable_if_c<Y != 2>::type * =0) {
272 bool yLe(
typename boost::enable_if_c<Y == 2>::type * =0) {
276 bool yGe(
typename boost::enable_if_c<Y!=7>::type * =0) {
280 bool yGe(
typename boost::enable_if_c<Y==7>::type * =0) {
283 template <Player P, Direction D>
287 template <Player P, Direction D>
289 return neighbor<PlayerTraits<P>::opponent,
D>();
311 std::ostream&
operator<<(std::ostream&, Square);