Переглянути джерело

Walter Brown brought to my attention that type_traits was failing to correctly classify nullptr_t

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@127334 91177308-0d34-0410-b5e6-96231b3b80d8
Howard Hinnant 14 роки тому
батько
коміт
5885da34ce
1 змінених файлів з 5 додано та 0 видалено
  1. 5 0
      include/type_traits

+ 5 - 0
include/type_traits

@@ -395,6 +395,9 @@ template <class _Tp> struct _LIBCPP_VISIBLE is_fundamental
     : public integral_constant<bool, is_void<_Tp>::value      ||
                                      is_arithmetic<_Tp>::value> {};
 
+template <> struct _LIBCPP_VISIBLE is_fundamental<nullptr_t>
+    : public true_type {};
+
 // is_scalar
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_scalar
@@ -403,6 +406,8 @@ template <class _Tp> struct _LIBCPP_VISIBLE is_scalar
                                      is_pointer<_Tp>::value        ||
                                      is_enum<_Tp>::value           > {};
 
+template <> struct _LIBCPP_VISIBLE is_scalar<nullptr_t> : public true_type {};
+
 // is_object
 
 template <class _Tp> struct _LIBCPP_VISIBLE is_object