X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FLibraries%2Flibc%2B%2B.so_src%2Finclude_exp%2Flist;fp=Usermode%2FLibraries%2Flibc%2B%2B.so_src%2Finclude_exp%2Flist;h=181f0e49cb27179ce6775001dd3c5af7251bd821;hb=145dd00e5c5a36f844be327e16a00b2983245423;hp=f63e31de700fabeacbc92b2b4c4410cb3680f255;hpb=1aed2067a0f084e9c5fa1af48e177e28a81466bc;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc++.so_src/include_exp/list b/Usermode/Libraries/libc++.so_src/include_exp/list index f63e31de..181f0e49 100644 --- a/Usermode/Libraries/libc++.so_src/include_exp/list +++ b/Usermode/Libraries/libc++.so_src/include_exp/list @@ -173,6 +173,53 @@ public: } m_item_count = 0; } + + void splice(iterator position, list& x) { + splice(position, x, x.begin(), x.end()); + } + void splice(iterator position, list& x, iterator i) { + splice(position, x, i, x.end()); + } + void splice(iterator position, list& x, iterator first, iterator last); + +private: + class _equal + { + const value_type& m_val; + public: + _equal(const value_type& val): + m_val(val) + { + }; + bool operator() (const value_type& v1) + { + return m_val == v1; + } + }; +public: + void remove(const value_type& val) { + remove_if(_equal(val)); + } + template void remove_if(Predicate pred) { + for( iterator it = begin(); it != end(); ) + { + if( pred(*it) ) + it = erase(it); + else + ++ it; + } + } + + void unique(); + template void unique(BinaryPredicate binary_pred); + + void merge(list& x); + template void merge(list& x, Compare comp); + + void sort(); + template void sort(Compare comp); + + void reverse() throw(); private: iterator insert_item(iterator position, item_type *newi) { m_item_count ++;