All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
moveSignature.cc
Go to the documentation of this file.
2 #include "osl/misc/loki.h"
3 #include <iostream>
4 
5 namespace osl
6 {
7 namespace effect
8 {
9  std::ostream& operator<<(std::ostream& os,const MoveSignature signature){
10  os << "Signature[";
11  for(int i=7;i>=0;i--){
12  if((signature&(1<<i))!=0) os<< "1";
13  else os<< "0";
14  }
15  return os << "]";
16  }
17 
18 
19  template<Ptype T>
21  signatures[static_cast<int>(newPtypeO(BLACK,T)-PTYPEO_MIN)]=
23  signatures[static_cast<int>(newPtypeO(WHITE,T)-PTYPEO_MIN)]=
25  }
26 
27  template<Ptype T>
29  setSignature<T>();
30  setSignatures<static_cast<Ptype>(T+1)>(Int2Type<static_cast<Ptype>(T+1) >());
31  }
32 
33  template<>
34  void MoveSignatureTable::setSignatures<ROOK>(Int2Type<ROOK>){
35  setSignature<ROOK>();
36  }
37 
39  setSignatures<PPAWN>(Int2Type<PPAWN>());
42  }
43 } // namespace effect
44 } // namespace osl