[cfe-commits] [libcxx] r160562 - in /libcxx/trunk/include: functional type_traits
Howard Hinnant
hhinnant at apple.com
Fri Jul 20 11:56:07 PDT 2012
Author: hhinnant
Date: Fri Jul 20 13:56:07 2012
New Revision: 160562
URL: http://llvm.org/viewvc/llvm-project?rev=160562&view=rev
Log:
Further tweaks on relaxing complete type checking for function.
Modified:
libcxx/trunk/include/functional
libcxx/trunk/include/type_traits
Modified: libcxx/trunk/include/functional
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/functional?rev=160562&r1=160561&r2=160562&view=diff
==============================================================================
--- libcxx/trunk/include/functional (original)
+++ libcxx/trunk/include/functional Fri Jul 20 13:56:07 2012
@@ -1113,7 +1113,8 @@
_LIBCPP_INLINE_VISIBILITY
static bool __not_null(const function<_Rp(_Ap...)>& __p) {return __p;}
- template <class _Fp, bool = __invokable<_Fp&, _ArgTypes...>::value>
+ template <class _Fp, bool = !is_same<_Fp, function>::value &&
+ __invokable<_Fp&, _ArgTypes...>::value>
struct __callable;
template <class _Fp>
struct __callable<_Fp, true>
Modified: libcxx/trunk/include/type_traits
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits?rev=160562&r1=160561&r2=160562&view=diff
==============================================================================
--- libcxx/trunk/include/type_traits (original)
+++ libcxx/trunk/include/type_traits Fri Jul 20 13:56:07 2012
@@ -2717,37 +2717,37 @@
template <class _Rp, class ..._Param>
struct __check_complete<_Rp (*)(_Param...)>
- : private __check_complete<_Param...>
+ : private __check_complete<_Rp>
{
};
template <class _Rp, class ..._Param>
struct __check_complete<_Rp (_Param...)>
- : private __check_complete<_Param...>
+ : private __check_complete<_Rp>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...)>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) const>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) volatile>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) const volatile>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
@@ -2755,49 +2755,49 @@
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) &>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) const&>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) volatile&>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) const volatile&>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) &&>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) const&&>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) volatile&&>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
template <class _Rp, class _Class, class ..._Param>
struct __check_complete<_Rp (_Class::*)(_Param...) const volatile&&>
- : private __check_complete<_Class, _Param...>
+ : private __check_complete<_Class>
{
};
More information about the cfe-commits
mailing list