>>347
bool CMD_LOAD(std::vector<std::string>::iterator param)
{
 if (param->size() < 2) return false;
 switch (*param[0].c_str()) {
  case "BMP":
   return loadbmp(*param[1]);
  case "WAV":
   return loadwav(*param[1]);
  :
  :
 }
}
std::map< std:string, boost::function<bool (std::vector<std::string>)> > Cmd;
Cmd["LOAD"] = &CMD_LOAD;
bool EXEC_CMD(const std::string& StateStr)
{
 std::vector<std::string> State;
 boost::char_separator<char> SpaceSep(" ");
 boost::tokenizer< boost::char_separator<char> > StateTemp(StateStr, SpaceSep);
 for (boost::tokenizer< boost::char_separator<char> >::iterator it = StateTemp.begin(); it != StateTemp.end(); ++it) {
  State.push_back(*it);
 }
 return Cmd[State[0]](&State[1]);
}