Esempio n. 1
0
 void erase(const T& item)
 {
   if(list_.erase(item) > 0)
   {
     if(added_list_.erase(item) == 0)
     {
       removed_list_.insert(item);
     }
     state_index_++;
   }
 }
Esempio n. 2
0
 void insert(const T& item)
 {
   insert_type result = list_.insert(item);
   if(result.second)
   {
     if(removed_list_.erase(item) == 0)
     {
       added_list_.insert(item);
     }
     state_index_++;
   }
 }
Esempio n. 3
0
 bool pop_type(const std::string& type)
 {
   for(list_type::iterator it = list_.begin();
       it != list_.end();
       it++)
   {
     if(it->type == type)
     {
       list_.erase(it);
       return true;
     }
   }
   return false;
 }
Esempio n. 4
0
   static void del(list_type & x, int i)
   {
      if( i<0 ) i += x.size();

      iter_type it = x.begin();
      for (int pos = 0; pos < i; ++pos) ++it;

      if( i >= 0 && i < (int)x.size() )
      {
         x.erase(it);
      }
      else
      {
         PyErr_SetString(PyExc_IndexError, "Index out of range");
         boost::python::throw_error_already_set();
      }
   }