Changeset 4867 for branches/erijo-dev

Show
Ignore:
Timestamp:
03/18/07 21:42:00 (21 months ago)
Author:
erijo
Message:

Add support to ObjectDeleter? for deleting the second value in a pair.

Location:
branches/erijo-dev/licq/src/utils
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/erijo-dev/licq/src/utils/misc.h

    r4839 r4867  
    2020#ifndef LICQ_MISC_H 
    2121#define LICQ_MISC_H 
     22 
     23#include <utility> 
    2224 
    2325namespace Licq 
     
    4446    delete ptr; 
    4547  } 
     48 
     49  /// Delete pair.second 
     50  template<typename T1, typename T2> 
     51  void operator()(const std::pair<T1, T2*>& pair) const 
     52  { 
     53    delete pair.second; 
     54  } 
    4655}; 
    4756 
  • branches/erijo-dev/licq/src/utils/tests/misctest.cpp

    r4829 r4867  
    2222#include "utils/misc.h" 
    2323#include <list> 
     24#include <map> 
    2425#include <vector> 
    2526 
     
    5556  std::for_each(vector.rbegin(), vector.rend(), ObjectDeleter()); 
    5657  BOOST_CHECK_EQUAL(TCounter::Counter, 0); 
     58 
     59  std::map<int, TCounter*> map; 
     60  for (int i = 0; i < 321; ++i) 
     61    map[i] = new TCounter(); 
     62 
     63  BOOST_CHECK_EQUAL(TCounter::Counter, 321); 
     64  std::for_each(map.begin(), map.end(), ObjectDeleter()); 
     65  BOOST_CHECK_EQUAL(TCounter::Counter, 0); 
    5766}