4 #include <boost/dynamic_bitset.hpp> 
   63       for (
int i = 0; i < 40; ++i)
 
   65         if(!state.usedMask().test(i)) 
continue;
 
   66         const Piece p = state.pieceOf(i);
 
  117       for (PawnArray::const_iterator p = 
pawn_pieces.begin();
 
  123         state.setPiece(p->getOwner(), p->getSquare(), ptype);
 
  125       for (LanceArray::const_iterator p = 
lance_pieces.begin();
 
  131         state.setPiece(p->getOwner(), p->getSquare(), ptype);
 
  139         state.setPiece(p->getOwner(), p->getSquare(), ptype);
 
  147         state.setPiece(p->getOwner(), p->getSquare(), ptype);
 
  155         state.setPiece(p->getOwner(), p->getSquare(), ptype);
 
  157       for (RookArray::const_iterator p = 
rook_pieces.begin();
 
  163         state.setPiece(p->getOwner(), p->getSquare(), ptype);
 
  165       for (GoldArray::const_iterator p = 
gold_pieces.begin();
 
  168         state.setPiece(p->getOwner(), p->getSquare(), 
GOLD);
 
  177     boost::dynamic_bitset<> 
 
  182       for (PawnArray::const_iterator p = 
pawn_pieces.begin();
 
  185         const int value = 
static_cast<int>(*p);
 
  186         const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  189       for (LanceArray::const_iterator p = 
lance_pieces.begin();
 
  192         const int value = 
static_cast<int>(*p);
 
  193         const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  199         const int value = 
static_cast<int>(*p);
 
  200         const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  206         const int value = 
static_cast<int>(*p);
 
  207         const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  213         const int value = 
static_cast<int>(*p);
 
  214         const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  217       for (RookArray::const_iterator p = 
rook_pieces.begin();
 
  220         const int value = 
static_cast<int>(*p);
 
  221         const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  224       for (GoldArray::const_iterator p = 
gold_pieces.begin();
 
  227         const int value = 
static_cast<int>(*p);
 
  228         const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  231       for (KingArray::const_iterator p = 
king_pieces.begin();
 
  234         const char value = 
static_cast<char>(*p);
 
  235         const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  236         bits = bits << 8 | mask;
 
  239       unsigned long value = 0;
 
  244       const boost::dynamic_bitset<> mask(
total_bits, static_cast<unsigned long>(value));
 
  245       bits = bits << 8 | mask;
 
  253       const boost::dynamic_bitset<> bits = 
toBits();
 
  260       if (bits.size() == 0)
 
  264       for (
int i=0; i<18; ++i)
 
  267         const unsigned long value = 
 
  270         const OPSquare p(static_cast<int>(value));
 
  273       for (
int i=0; i<4; ++i)
 
  276         const unsigned long value = 
 
  279         const OPSquare p(static_cast<int>(value));
 
  282       for (
int i=0; i<4; ++i)
 
  285         const unsigned long value = 
 
  288         const OPSquare p(static_cast<int>(value));
 
  291       for (
int i=0; i<4; ++i)
 
  294         const unsigned long value = 
 
  297         const OPSquare p(static_cast<int>(value));
 
  300       for (
int i=0; i<2; ++i)
 
  303         const unsigned long value = 
 
  306         const OPSquare p(static_cast<int>(value));
 
  309       for (
int i=0; i<2; ++i)
 
  312         const unsigned long value = 
 
  315         const OPSquare p(static_cast<int>(value));
 
  318       for (
int i=0; i<4; ++i)
 
  321         const unsigned long value = 
 
  323         const OSquare p(static_cast<int>(value));
 
  326       for (
int i=0; i<2; ++i)
 
  329         const unsigned long value = 
 
  334       const unsigned long value = (bits & mask).to_ulong();