From 011d8001e295ab428f3d73602d2e4fa0b248efc4 Mon Sep 17 00:00:00 2001 From: theraven Date: Thu, 3 May 2012 17:44:07 +0000 Subject: Import new version of libc++. Among other improvements, this comes with an header that works with clang 3.1 (and, importantly, the pre-3.1 snapshot currently in head) --- contrib/libc++/include/tuple | 58 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 6 deletions(-) (limited to 'contrib/libc++/include/tuple') diff --git a/contrib/libc++/include/tuple b/contrib/libc++/include/tuple index 2bdb05f..683c9dd 100644 --- a/contrib/libc++/include/tuple +++ b/contrib/libc++/include/tuple @@ -552,7 +552,7 @@ public: ) {} template ::type - >::value - >::type + >::value, + bool + >::type = false + > + _LIBCPP_INLINE_VISIBILITY + tuple(_Up&&... __u) + : base_(typename __make_tuple_indices::type(), + typename __make_tuple_types::type(), + typename __make_tuple_indices::type(), + typename __make_tuple_types::type(), + _VSTD::forward<_Up>(__u)...) {} + + template , + typename __make_tuple_types::type + >::value && + !__tuple_convertible + < + tuple<_Up...>, + typename __make_tuple_types::type + >::value, + bool + >::type =false > _LIBCPP_INLINE_VISIBILITY explicit @@ -598,15 +630,29 @@ public: _VSTD::forward<_Up>(__u)...) {} template ::value - >::type + __tuple_convertible<_Tuple, tuple>::value, + bool + >::type = false > _LIBCPP_INLINE_VISIBILITY tuple(_Tuple&& __t) : base_(_VSTD::forward<_Tuple>(__t)) {} + template ::value && + !__tuple_convertible<_Tuple, tuple>::value, + bool + >::type = false + > + _LIBCPP_INLINE_VISIBILITY + explicit + tuple(_Tuple&& __t) + : base_(_VSTD::forward<_Tuple>(__t)) {} + template