comparison src/base-list.h @ 6841:9cee629fe20c

[project @ 2007-08-29 17:31:45 by jwe]
author jwe
date Wed, 29 Aug 2007 17:31:45 +0000
parents 4c8a2e4e0717
children 8d3426c59a88
comparison
equal deleted inserted replaced
6840:2f17d5556756 6841:9cee629fe20c
40 size_t length (void) const { return lst.size (); } 40 size_t length (void) const { return lst.size (); }
41 41
42 iterator erase (iterator pos) { return lst.erase (pos); } 42 iterator erase (iterator pos) { return lst.erase (pos); }
43 43
44 template <class P> 44 template <class P>
45 void remove_if (P pred) { lst.remove_if (pred); } 45 void remove_if (P pred)
46 {
47 // We would like to simply call
48 //
49 // lst.remove_if (pred);
50 //
51 // but the Sun Studio compiler chokes on that.
52 //
53 // FIXME -- this kluge should be removed at some point.
54
55 iterator b = lst.begin ();
56 iterator e = lst.end ();
57 while (b != e)
58 {
59 iterator n = b;
60 n++;
61 if (pred (*b))
62 erase (b);
63 b = n;
64 }
65 }
46 66
47 void clear (void) { lst.clear (); } 67 void clear (void) { lst.clear (); }
48 68
49 void append (const elt_type& s) { lst.push_back (s); } 69 void append (const elt_type& s) { lst.push_back (s); }
50 70