[libcxx] r245805 - Revert r245802. It violates the incomplete type requirements.
Eric Fiselier via cfe-commits
cfe-commits at lists.llvm.org
Sat Aug 22 19:39:20 PDT 2015
Author: ericwf
Date: Sat Aug 22 21:39:20 2015
New Revision: 245805
URL: http://llvm.org/viewvc/llvm-project?rev=245805&view=rev
Log:
Revert r245802. It violates the incomplete type requirements.
Modified:
libcxx/trunk/include/list
libcxx/trunk/include/memory
Modified: libcxx/trunk/include/list
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/list?rev=245805&r1=245804&r2=245805&view=diff
==============================================================================
--- libcxx/trunk/include/list (original)
+++ libcxx/trunk/include/list Sat Aug 22 21:39:20 2015
@@ -191,10 +191,19 @@ template <class _Tp, class _VoidPtr> str
template <class _Tp, class _VoidPtr>
struct __list_node_base
{
- typedef typename __rebind_pointer<_VoidPtr, __list_node<_Tp, _VoidPtr> >::type
- pointer;
- typedef typename __rebind_pointer<_VoidPtr, __list_node_base>::type
- __base_pointer;
+ typedef typename pointer_traits<_VoidPtr>::template
+#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
+ rebind<__list_node<_Tp, _VoidPtr> > pointer;
+#else
+ rebind<__list_node<_Tp, _VoidPtr> >::other pointer;
+#endif
+
+ typedef typename pointer_traits<_VoidPtr>::template
+#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
+ rebind<__list_node_base> __base_pointer;
+#else
+ rebind<__list_node_base>::other __base_pointer;
+#endif
pointer __prev_;
pointer __next_;
@@ -223,7 +232,12 @@ template <class _Tp, class _VoidPtr> cla
template <class _Tp, class _VoidPtr>
class _LIBCPP_TYPE_VIS_ONLY __list_iterator
{
- typedef typename __list_node<_Tp, _VoidPtr>::pointer __node_pointer;
+ typedef typename pointer_traits<_VoidPtr>::template
+#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
+ rebind<__list_node<_Tp, _VoidPtr> > __node_pointer;
+#else
+ rebind<__list_node<_Tp, _VoidPtr> >::other __node_pointer;
+#endif
__node_pointer __ptr_;
@@ -248,7 +262,13 @@ public:
typedef bidirectional_iterator_tag iterator_category;
typedef _Tp value_type;
typedef value_type& reference;
- typedef typename __rebind_pointer<_VoidPtr, value_type>::type pointer;
+ typedef typename pointer_traits<_VoidPtr>::template
+#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
+ rebind<value_type>
+#else
+ rebind<value_type>::other
+#endif
+ pointer;
typedef typename pointer_traits<pointer>::difference_type difference_type;
_LIBCPP_INLINE_VISIBILITY
@@ -345,7 +365,12 @@ public:
template <class _Tp, class _VoidPtr>
class _LIBCPP_TYPE_VIS_ONLY __list_const_iterator
{
- typedef typename __list_node<_Tp, _VoidPtr>::pointer __node_pointer;
+ typedef typename pointer_traits<_VoidPtr>::template
+#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
+ rebind<__list_node<_Tp, _VoidPtr> > __node_pointer;
+#else
+ rebind<__list_node<_Tp, _VoidPtr> >::other __node_pointer;
+#endif
__node_pointer __ptr_;
@@ -367,7 +392,13 @@ public:
typedef bidirectional_iterator_tag iterator_category;
typedef _Tp value_type;
typedef const value_type& reference;
- typedef typename __rebind_pointer<_VoidPtr, const value_type>::type pointer;
+ typedef typename pointer_traits<_VoidPtr>::template
+#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
+ rebind<const value_type>
+#else
+ rebind<const value_type>::other
+#endif
+ pointer;
typedef typename pointer_traits<pointer>::difference_type difference_type;
_LIBCPP_INLINE_VISIBILITY
Modified: libcxx/trunk/include/memory
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/memory?rev=245805&r1=245804&r2=245805&view=diff
==============================================================================
--- libcxx/trunk/include/memory (original)
+++ libcxx/trunk/include/memory Sat Aug 22 21:39:20 2015
@@ -932,15 +932,6 @@ public:
{return _VSTD::addressof(__r);}
};
-template <class _From, class _To>
-struct __rebind_pointer {
-#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
- typedef typename pointer_traits<_From>::template rebind<_To> type;
-#else
- typedef typename pointer_traits<_From>::template rebind<_To>::other type;
-#endif
-};
-
// allocator_traits
namespace __has_pointer_type_imp
More information about the cfe-commits
mailing list