From f048fe3a09ec018990c055bc9308deffcaff89bf Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Sat, 20 Nov 2010 18:25:22 +0000 Subject: [PATCH] N3123 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119906 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/__config | 2 -- include/__tuple | 2 +- include/type_traits | 4 ---- .../meta/meta.trans/meta.trans.other/result_of.pass.cpp | 6 +++--- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/__config b/include/__config index 4dde70ad1..f2460665f 100644 --- a/include/__config +++ b/include/__config @@ -86,8 +86,6 @@ #if defined(__clang__) -#undef __STRICT_ANSI__ - #define _LIBCPP_HAS_NO_ADVANCED_SFINAE #define _LIBCPP_HAS_NO_TEMPLATE_ALIASES diff --git a/include/__tuple b/include/__tuple index 22134a205..72e36fbb3 100644 --- a/include/__tuple +++ b/include/__tuple @@ -240,7 +240,7 @@ struct __tuple_assignable_imp : public false_type {}; template struct __tuple_assignable_imp, __tuple_types<_Up0, _Up...>> : public integral_constant::value && + is_assignable<_Up0&, _Tp0>::value && __tuple_assignable_imp, __tuple_types<_Up...>>::value> {}; template <> diff --git a/include/type_traits b/include/type_traits index 6b8a99ff4..7cfdbf388 100644 --- a/include/type_traits +++ b/include/type_traits @@ -1394,8 +1394,6 @@ public: typedef decltype(declval<_Fn>()(declval<_ArgTypes>()...)) type; }; -#if 0 - template struct __result_of_mp; @@ -1455,8 +1453,6 @@ class __result_of<_Fn(_Tp, _ArgTypes...), false> // _Fn must be member pointer { }; -#endif // 0 - // result_of template diff --git a/test/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp b/test/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp index 151a61e35..84e14e430 100644 --- a/test/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp +++ b/test/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp @@ -33,7 +33,7 @@ int main() static_assert((std::is_same::type, short>::value), "Error!"); static_assert((std::is_same::type, double>::value), "Error!"); static_assert((std::is_same::type, bool>::value), "Error!"); -// static_assert(std::is_same, int)>::type, void>::value, "Error!"); -// static_assert(std::is_same::type, char&&>::value, "Error!"); -// static_assert(std::is_same::type, const char&>::value, "Error!"); + static_assert((std::is_same, int)>::type, void>::value), "Error!"); + static_assert((std::is_same::type, char&&>::value), "Error!"); + static_assert((std::is_same::type, const char&>::value), "Error!"); }