浏览代码

N3123

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@119906 91177308-0d34-0410-b5e6-96231b3b80d8
Howard Hinnant 14 年之前
父节点
当前提交
f048fe3a09
共有 4 个文件被更改,包括 4 次插入10 次删除
  1. 0 2
      include/__config
  2. 1 1
      include/__tuple
  3. 0 4
      include/type_traits
  4. 3 3
      test/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp

+ 0 - 2
include/__config

@@ -86,8 +86,6 @@
 
 #if defined(__clang__)
 
-#undef __STRICT_ANSI__
-
 #define _LIBCPP_HAS_NO_ADVANCED_SFINAE
 #define _LIBCPP_HAS_NO_TEMPLATE_ALIASES
 

+ 1 - 1
include/__tuple

@@ -240,7 +240,7 @@ struct __tuple_assignable_imp : public false_type {};
 template <class _Tp0, class ..._Tp, class _Up0, class ..._Up>
 struct __tuple_assignable_imp<true, __tuple_types<_Tp0, _Tp...>, __tuple_types<_Up0, _Up...>>
     : public integral_constant<bool,
-                               __is_assignable<_Up0&, _Tp0>::value &&
+                               is_assignable<_Up0&, _Tp0>::value &&
                                __tuple_assignable_imp<true, __tuple_types<_Tp...>, __tuple_types<_Up...>>::value> {};
 
 template <>

+ 0 - 4
include/type_traits

@@ -1394,8 +1394,6 @@ public:
     typedef decltype(declval<_Fn>()(declval<_ArgTypes>()...)) type;
 };
 
-#if 0
-
 template <class _MP, class _Tp, class ..._Args>
 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 <class _Fn, class ..._ArgTypes>

+ 3 - 3
test/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp

@@ -33,7 +33,7 @@ int main()
     static_assert((std::is_same<std::result_of<S(int)>::type, short>::value), "Error!");
     static_assert((std::is_same<std::result_of<S&(unsigned char, int&)>::type, double>::value), "Error!");
     static_assert((std::is_same<std::result_of<PF1()>::type, bool>::value), "Error!");
-//     static_assert(std::is_same<std::result_of<PMS(std::unique_ptr<S>, int)>::type, void>::value, "Error!");
-//     static_assert(std::is_same<std::result_of<PMD(S)>::type, char&&>::value, "Error!");
-//     static_assert(std::is_same<std::result_of<PMD(const S*)>::type, const char&>::value, "Error!");
+    static_assert((std::is_same<std::result_of<PMS(std::unique_ptr<S>, int)>::type, void>::value), "Error!");
+    static_assert((std::is_same<std::result_of<PMD(S)>::type, char&&>::value), "Error!");
+    static_assert((std::is_same<std::result_of<PMD(const S*)>::type, const char&>::value), "Error!");
 }