BitScanReverseではなくBitScanForwardを使えという話
stacksさんがコメントで書かれてましたが、 細かい話ですが、取り出す順序を問わないforeachであれば、 bsr(_BitScanReverse)を使って_c_ ^= 1 << _index_;で消すよりも、 bsf(_BitScanForward)を使って_c_ &= _c_ - 1;で消したほうが少しだけ速いはずです。 前者はmov/shl/xorですが、後者はlea/andで済むので。 また、AMD系だと、bsrよりbsfのほうが少し効率がいいようです。 http://d.hatena.ne.jp/mkomiya/20091116/1258382260 指し手生成祭り・_BitScanForwardでさらに高速化(小宮日記)
それはナイスアイデア!コンピュータ将棋の進歩というのは、df-pnやボナンザメソッドのような大発明だけではなく、このような小さな発見も立派な進歩に値すると思います。