From bf78786db0f935c7331cec031e017605aefa5c9c Mon Sep 17 00:00:00 2001 From: Alexis Hunt Date: Sat, 30 Jul 2011 00:47:53 +0000 Subject: Add the missing default argument for the allocator and use a cleaner implementation of previous(). llvm-svn: 136547 --- libcxx/include/ext/slist | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'libcxx/include') diff --git a/libcxx/include/ext/slist b/libcxx/include/ext/slist index ef115b3d6cd..30ba7e30b43 100644 --- a/libcxx/include/ext/slist +++ b/libcxx/include/ext/slist @@ -21,7 +21,7 @@ namespace __gnu_cxx { using namespace std; -template +template > class _LIBCPP_VISIBLE slist : forward_list<_Tp, _Alloc> { public: @@ -105,12 +105,9 @@ template inline _LIBCPP_INLINE_VISIBILITY typename slist<_Tp, _Alloc>::iterator slist<_Tp, _Alloc>::previous(iterator __pos) { - iterator __a = begin(), __b = end(); - while (__a != __pos) - { - __b = __a; - ++__a; - } + iterator __a = begin(), __b = begin(); + while (++__a != __pos) + ++__b; return __b; } @@ -118,12 +115,9 @@ template inline _LIBCPP_INLINE_VISIBILITY typename slist<_Tp, _Alloc>::const_iterator slist<_Tp, _Alloc>::previous(const_iterator __pos) { - iterator __a = begin(), __b = end(); - while (__a != __pos) - { - __b = __a; - ++__a; - } + iterator __a = begin(), __b = begin(); + while (++__a != __pos) + ++__b; return __b; } -- cgit v1.2.3