Figure 7: TestSwitch member function of CConsoleApp (from conapp.c)

bool CConsoleApp::TestSwitch( const tstring& swname,
                              bool remove_switch )  {
   // iterators for traversing the argument list
   list<CCmdArg>::iterator iter_begin = arglist.begin();
   list<CCmdArg>::iterator iter_end = arglist.end();
   list<CCmdArg>::iterator iter;

   iter = find_if( iter_begin, iter_end,
      EqualArg( CCmdArg( CCmdArg::CmdSwitch, swname ) ) );

   if ( iter != iter_end ) {
      if ( remove_switch )
         // remove the argument from the list
         arglist.erase( iter ); 
      return true;
   }

   return false;
}