Changed __config to react to all of clang's currently documented has_feature flags, and renamed _LIBCPP_MOVE to _LIBCPP_HAS_NO_RVALUE_REFERENCES to be more consistent with the rest of the libc++'s flags, and with clang's nomenclature.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@113086 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/deque b/include/deque
index ac76f2a..94844cb 100644
--- a/include/deque
+++ b/include/deque
@@ -930,12 +930,12 @@
explicit __deque_base(const allocator_type& __a);
~__deque_base();
-#ifdef _LIBCPP_MOVE
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
__deque_base(__deque_base&& __c);
__deque_base(__deque_base&& __c, const allocator_type& __a);
-#endif // _LIBCPP_MOVE
+#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
void swap(__deque_base& __c);
void clear();
@@ -1059,7 +1059,7 @@
__alloc_traits::deallocate(__alloc(), *__i, __block_size);
}
-#ifdef _LIBCPP_MOVE
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
__deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c)
@@ -1090,7 +1090,7 @@
}
}
-#endif // _LIBCPP_MOVE
+#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
void
@@ -1171,11 +1171,11 @@
deque& operator=(const deque& __c);
deque& operator=(initializer_list<value_type> __il) {assign(__il); return *this;}
-#ifdef _LIBCPP_MOVE
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
deque(deque&& __c);
deque(deque&& __c, const allocator_type& __a);
deque& operator=(deque&& __c);
-#endif // _LIBCPP_MOVE
+#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _InputIter>
void assign(_InputIter __f, _InputIter __l,
@@ -1227,14 +1227,16 @@
// 23.2.2.3 modifiers:
void push_front(const value_type& __v);
void push_back(const value_type& __v);
-#ifdef _LIBCPP_MOVE
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+#ifndef _LIBCPP_HAS_NO_VARIADICS
template <class... _Args> void emplace_front(_Args&&... __args);
template <class... _Args> void emplace_back(_Args&&... __args);
template <class... _Args> iterator emplace(const_iterator __p, _Args&&... __args);
+#endif // _LIBCPP_HAS_NO_VARIADICS
void push_front(value_type&& __v);
void push_back(value_type&& __v);
iterator insert(const_iterator __p, value_type&& __v);
-#endif // _LIBCPP_MOVE
+#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
iterator insert(const_iterator __p, const value_type& __v);
iterator insert(const_iterator __p, size_type __n, const value_type& __v);
template <class _InputIter>
@@ -1396,7 +1398,7 @@
return *this;
}
-#ifdef _LIBCPP_MOVE
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
inline
@@ -1449,7 +1451,7 @@
__base::__move_assign(__c);
}
-#endif // _LIBCPP_MOVE
+#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
template <class _InputIter>
@@ -1645,7 +1647,7 @@
++__base::size();
}
-#ifdef _LIBCPP_MOVE
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
void
@@ -1659,6 +1661,8 @@
++__base::size();
}
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+
template <class _Tp, class _Allocator>
template <class... _Args>
void
@@ -1672,7 +1676,8 @@
++__base::size();
}
-#endif // _LIBCPP_MOVE
+#endif // _LIBCPP_HAS_NO_VARIADICS
+#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
void
@@ -1687,7 +1692,7 @@
++__base::size();
}
-#ifdef _LIBCPP_MOVE
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
void
@@ -1702,6 +1707,8 @@
++__base::size();
}
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+
template <class _Tp, class _Allocator>
template <class... _Args>
void
@@ -1716,7 +1723,8 @@
++__base::size();
}
-#endif // _LIBCPP_MOVE
+#endif // _LIBCPP_HAS_NO_VARIADICS
+#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
typename deque<_Tp, _Allocator>::iterator
@@ -1779,7 +1787,7 @@
return __base::begin() + __pos;
}
-#ifdef _LIBCPP_MOVE
+#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
typename deque<_Tp, _Allocator>::iterator
@@ -1836,6 +1844,8 @@
return __base::begin() + __pos;
}
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+
template <class _Tp, class _Allocator>
template <class... _Args>
typename deque<_Tp, _Allocator>::iterator
@@ -1892,7 +1902,8 @@
return __base::begin() + __pos;
}
-#endif // _LIBCPP_MOVE
+#endif // _LIBCPP_HAS_NO_VARIADICS
+#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
template <class _Tp, class _Allocator>
typename deque<_Tp, _Allocator>::iterator