From 9d7530935d1f0588bf537eb268af0571f80592e6 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Sat, 30 Jul 2011 21:10:18 +0000 Subject: [PATCH] Revert r136547, r136545, and r136542 by removing slist. This was checked in without review. It is not clear its reasonable to include with libc++ at all, and needs discussion at a highlevel before moving forward. It's also completely lacking tests, and included several bugs in the implementation. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@136577 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/ext/slist | 126 ---------------------------------------------- 1 file changed, 126 deletions(-) delete mode 100644 include/ext/slist diff --git a/include/ext/slist b/include/ext/slist deleted file mode 100644 index 30ba7e30..00000000 --- a/include/ext/slist +++ /dev/null @@ -1,126 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP__EXT_SLIST -#define _LIBCPP__EXT_SLIST - -#include <__config> -#include -#include - -#pragma GCC system_header - -namespace __gnu_cxx { - -using namespace std; - -template > -class _LIBCPP_VISIBLE slist : forward_list<_Tp, _Alloc> -{ -public: - typedef forward_list<_Tp, _Alloc> __base_type; - using typename __base_type::value_type; - using typename __base_type::pointer; - using typename __base_type::reference; - using typename __base_type::const_reference; - using typename __base_type::size_type; - using typename __base_type::difference_type; - using typename __base_type::iterator; - using typename __base_type::const_iterator; - using __base_type::begin; - using __base_type::end; - using __base_type::max_size; - using __base_type::empty; - using __base_type::front; - using __base_type::push_front; - using __base_type::pop_front; - using __base_type::clear; - using __base_type::resize; - using __base_type::insert_after; - using __base_type::erase_after; - using __base_type::splice_after; - using __base_type::remove; - using __base_type::remove_if; - using __base_type::unique; - using __base_type::sort; - using __base_type::reverse; - - _LIBCPP_INLINE_VISIBILITY - slist() { } - _LIBCPP_INLINE_VISIBILITY - slist(size_type __n) : __base_type(__n) { } - _LIBCPP_INLINE_VISIBILITY - slist(size_type __n, const _Tp& __t) : __base_type(__n, __t) { } - template - _LIBCPP_INLINE_VISIBILITY - slist(_InputIterator __f, _InputIterator __l) : __base_type(__f, __l) { } - - _LIBCPP_INLINE_VISIBILITY - void swap (slist& __s) { __base_type::swap(__s); } - - _LIBCPP_INLINE_VISIBILITY - void merge (slist& __s) { __base_type::merge(__s); } - - _LIBCPP_INLINE_VISIBILITY - friend bool operator==(const slist& __l, const slist& __r) - { - return static_cast(__l) == - static_cast(__r); - } - _LIBCPP_INLINE_VISIBILITY - friend bool operator<(const slist& __l, const slist& __r) - { - return static_cast(__l) == - static_cast(__r); - } - - _LIBCPP_INLINE_VISIBILITY - size_type size() const { return _VSTD::distance(begin(), end()); } - - iterator previous(iterator __pos); - const_iterator previous(const_iterator __pos); - - _LIBCPP_INLINE_VISIBILITY - iterator insert(iterator __pos, const _Tp& __x) { return insert_after(previous(__pos), __x); } - template - _LIBCPP_INLINE_VISIBILITY - void insert(iterator __pos, _InputIterator __f, _InputIterator __l) { return insert_after(previous(__pos), __f, __l); } - _LIBCPP_INLINE_VISIBILITY - void insert(iterator __pos, size_type __n, const _Tp& __x) { return insert_after(previous(__pos), __n, __x); } - - _LIBCPP_INLINE_VISIBILITY - iterator erase(iterator __pos) { return erase_after(previous(__pos)); } - _LIBCPP_INLINE_VISIBILITY - iterator erase(iterator __f, iterator __l) { return erase_after(previous(__f), previous(__l)); } -}; - -template -inline _LIBCPP_INLINE_VISIBILITY -typename slist<_Tp, _Alloc>::iterator slist<_Tp, _Alloc>::previous(iterator __pos) -{ - iterator __a = begin(), __b = begin(); - while (++__a != __pos) - ++__b; - return __b; -} - -template -inline _LIBCPP_INLINE_VISIBILITY -typename slist<_Tp, _Alloc>::const_iterator slist<_Tp, _Alloc>::previous(const_iterator __pos) -{ - iterator __a = begin(), __b = begin(); - while (++__a != __pos) - ++__b; - return __b; -} - -} - -#endif