Fix compile with Intel 13.0
authorMarco Costalba <mcostalba@gmail.com>
Sat, 15 Sep 2012 08:50:23 +0000 (10:50 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 15 Sep 2012 08:55:39 +0000 (10:55 +0200)
It seems Intel is unable to properly workout templates with 'static'
storage specifier.

Workaround using an anonymous namespace instead.

No functional change.

src/position.cpp

index 26f457c54793b49299dda43c13ac75888de9bef6..4bc8df597e8e02e1af5cf309b1f2b82d68c1bd7a 100644 (file)
@@ -102,11 +102,13 @@ void init() {
 } // namespace Zobrist
 
 
+namespace {
+
 /// next_attacker() is an helper function used by see() to locate the least
 /// valuable attacker for the side to move, remove the attacker we just found
 /// from the 'occupied' bitboard and scan for new X-ray attacks behind it.
 
-template<int Pt> static FORCE_INLINE
+template<int Pt> FORCE_INLINE
 PieceType next_attacker(const Bitboard* bb, const Square& to, const Bitboard& stmAttackers,
                         Bitboard& occupied, Bitboard& attackers) {
 
@@ -131,6 +133,8 @@ PieceType next_attacker<KING>(const Bitboard*, const Square&, const Bitboard&, B
   return KING; // No need to update bitboards, it is the last cycle
 }
 
+} // namespace
+
 
 /// CheckInfo c'tor