FIFE  be64c707dea6b3250bd4355bf5c825d25920087d
purge.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2005-2019 by the FIFE team *
3  * http://www.fifengine.net *
4  * This file is part of FIFE. *
5  * *
6  * FIFE is free software; you can redistribute it and/or *
7  * modify it under the terms of the GNU Lesser General Public *
8  * License as published by the Free Software Foundation; either *
9  * version 2.1 of the License, or (at your option) any later version. *
10  * *
11  * This library is distributed in the hope that it will be useful, *
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14  * Lesser General Public License for more details. *
15  * *
16  * You should have received a copy of the GNU Lesser General Public *
17  * License along with this library; if not, write to the *
18  * Free Software Foundation, Inc., *
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
20  ***************************************************************************/
21 
22 
23 // Delete pointers in an STL sequence container
24 #ifndef PURGE_H
25 #define PURGE_H
26 #include <algorithm>
27 
28 template<class Seq> void purge(Seq& c) {
29  typename Seq::iterator i;
30  for(i = c.begin(); i != c.end(); i++) {
31  delete *i;
32  *i = 0;
33  }
34 }
35 
36 // Iterator version:
37 template<class InpIt>
38 void purge(InpIt begin, InpIt end) {
39  while(begin != end) {
40  delete *begin;
41  *begin = 0;
42  begin++;
43  }
44 }
45 template<class Seq> void purge_map(Seq& c) {
46  typename Seq::iterator i;
47  for(i = c.begin(); i != c.end(); i++) {
48  delete i->second;
49  i->second = 0;
50  }
51 }
52 
53 // Iterator version:
54 template<class InpIt>
55 void purge_map(InpIt begin, InpIt end) {
56  while(begin != end) {
57  delete begin->second;
58  begin->second = 0;
59  begin++;
60  }
61 }
62 #endif // PURGE_H
void purge(Seq &c)
Definition: purge.h:28
void purge_map(Seq &c)
Definition: purge.h:45