瀏覽代碼

I have to revert this recent fix to tuple conversions until clang implements cwg 1170. Without this fix pair and tuple don't convert properly. With it, associative containers get access errors when they shouldn't. cwg 1170 fixes the latter.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@127411 91177308-0d34-0410-b5e6-96231b3b80d8
Howard Hinnant 14 年之前
父節點
當前提交
f9b8998795
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      include/__tuple

+ 4 - 0
include/__tuple

@@ -214,7 +214,11 @@ struct __tuple_convertible_imp : public false_type {};
 template <class _Tp0, class ..._Tp, class _Up0, class ..._Up>
 template <class _Tp0, class ..._Tp, class _Up0, class ..._Up>
 struct __tuple_convertible_imp<true, __tuple_types<_Tp0, _Tp...>, __tuple_types<_Up0, _Up...> >
 struct __tuple_convertible_imp<true, __tuple_types<_Tp0, _Tp...>, __tuple_types<_Up0, _Up...> >
     : public integral_constant<bool,
     : public integral_constant<bool,
+#if 1 // waiting on cwg 1170
+                               is_convertible<_Tp0, _Up0>::value &&
+#else
                                is_constructible<_Up0, _Tp0>::value &&
                                is_constructible<_Up0, _Tp0>::value &&
+#endif
                                __tuple_convertible_imp<true, __tuple_types<_Tp...>, __tuple_types<_Up...> >::value> {};
                                __tuple_convertible_imp<true, __tuple_types<_Tp...>, __tuple_types<_Up...> >::value> {};
 
 
 template <>
 template <>