5 #include "osl/apply_move/applyMoveWithPath.h" 
    9 using namespace osl::ntesuki;
 
   11 template<
class Search, 
class F> 
class 
   23     : searcher(searcher), state(state), child(child)
 
   29     (*searcher).template forEachRecordFrom<F>(func, state, child);
 
   39   for (iterator it = begin(); it != end(); ++it)
 
   41     for (NtesukiRecord::RecordList::iterator p = it->second.begin();
 
   42          p != it->second.end(); ++p)
 
   54                   NumEffectState& state,
 
   63   std::vector<NtesukiMove> 
moves;
 
   64   std::copy(all_moves.begin(), all_moves.end(),
 
   65             std::back_insert_iterator<std::vector<NtesukiMove> >(
moves));
 
   66   typename F::Compare c;
 
   67   std::sort(moves.begin(), moves.end(), c);
 
   68   for (std::vector<NtesukiMove>::const_iterator it = moves.begin();
 
   69        it != moves.end(); ++it)
 
   75       if (func.withChildMove(m, child))
 
   78         ApplyMoveOfTurn::doUndoMove(state, m.
getMove(), helper);
 
   94   if (rootState.get() == NULL)
 
   99   NumEffectState state(*rootState);
 
  100   forEachRecordFrom<F>(func, state, root);