6 template <osl::Player P>
 
    7 template <osl::Direction Dir>
 
   15     const Piece focus = state.pieceAt(p);
 
   19     if (! state.hasEffectAt<P>(p))
 
   29 template <osl::Player P>
 
   40   if (! state.hasEffectAt<P>(to))
 
   43   const Piece rook = state.pieceAt(back_position);
 
   46   if (! testDirection<R>(state, back_position))
 
   48   if (! testDirection<L>(state, back_position))
 
   52   for (
Square p=back_position+DirectionPlayerTraits<D,P>::offset();;
 
   53        p+=DirectionPlayerTraits<D,P>::offset())
 
   55     const Piece focus = state.pieceAt(p);
 
   60       return state.hasEffectAt<P>(p);
 
   62     if (state.hasEffectAt<P>(p))
 
   64     if (p.canPromote<Opponent>())
 
   71   namespace move_classifier