9 #elif OSL_WORDSIZE == 32
19 #if OSL_WORDSIZE == 64
20 typedef PieceMask64 PieceMaskBase;
21 #elif OSL_WORDSIZE == 32
22 typedef PieceMask32 PieceMaskBase;
35 PieceMask(
const PieceMaskBase& base) : PieceMaskBase(base) {}
37 return mask_t::makeDirect(1) << PieceMask::numToOffset(num);
40 mutableMask(index)=val;
44 return mutableMask(numToIndex(num));
47 return getMask(numToIndex(num));
51 mutableMask(index)^=val;
54 mutableMask(index)|=val;
68 bool any()
const {
return ! none(); }
70 const mask_t getMask(
int num)
const {
return PieceMaskBase::getMask(num); }
72 template <Ptype PTYPE>
76 template <Ptype PTYPE>
79 mask_t mask = getMask<PTYPE>();
84 template <Ptype PTYPE>
91 template <Ptype PTYPE>
101 #if OSL_WORDSIZE == 64
103 #elif OSL_WORDSIZE == 32
111 #if OSL_WORDSIZE == 64
113 #elif OSL_WORDSIZE == 32
120 #if OSL_WORDSIZE == 64
122 #elif OSL_WORDSIZE == 32
134 std::ostream&
operator<<(std::ostream& os,PieceMask
const& pieceMask);
136 using container::PieceMask;