Mercurial > hg > octave-lyh
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 |