[cfe-commits] [libcxx] r136577 - /libcxx/trunk/include/ext/slist

Chandler Carruth chandlerc at gmail.com
Sat Jul 30 14:10:18 PDT 2011


Author: chandlerc
Date: Sat Jul 30 16:10:18 2011
New Revision: 136577

URL: http://llvm.org/viewvc/llvm-project?rev=136577&view=rev
Log:
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.

Removed:
    libcxx/trunk/include/ext/slist

Removed: libcxx/trunk/include/ext/slist
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ext/slist?rev=136576&view=auto
==============================================================================
--- libcxx/trunk/include/ext/slist (original)
+++ libcxx/trunk/include/ext/slist (removed)
@@ -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 <forward_list>
-#include <iterator>
-
-#pragma GCC system_header
-
-namespace __gnu_cxx {
-
-using namespace std;
-
-template <class _Tp, class _Alloc = allocator<_Tp> >
-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 <typename _InputIterator>
-    _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<const __base_type&>(__l) ==
-               static_cast<const __base_type&>(__r);
-    }
-    _LIBCPP_INLINE_VISIBILITY
-    friend bool operator<(const slist& __l, const slist& __r)
-    {
-        return static_cast<const __base_type&>(__l) ==
-               static_cast<const __base_type&>(__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 <class _InputIterator>
-    _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 <class _Tp, class _Alloc>
-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 <class _Tp, class _Alloc>
-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





More information about the cfe-commits mailing list