Deleted Added
full compact
1600,1602c1600,1604
< template <class _Fp, bool = !is_same<_Fp, function>::value &&
< __invokable<_Fp&, _ArgTypes...>::value>
< struct __callable;
---
> template <class _Fp, bool = __lazy_and<
> integral_constant<bool, !is_same<__uncvref_t<_Fp>, function>::value>,
> __invokable<_Fp&, _ArgTypes...>
> >::value>
> struct __callable;
1614a1617,1619
>
> template <class _Fp>
> using _EnableIfCallable = typename enable_if<__callable<_Fp>::value>::type;
1625,1627c1630
< template<class _Fp, class = typename enable_if<
< __callable<_Fp>::value && !is_same<_Fp, function>::value
< >::type>
---
> template<class _Fp, class = _EnableIfCallable<_Fp>>
1641c1644
< template<class _Fp, class _Alloc, class = typename enable_if<__callable<_Fp>::value>::type>
---
> template<class _Fp, class _Alloc, class = _EnableIfCallable<_Fp>>
1648,1655c1651,1652
< template<class _Fp>
< typename enable_if
< <
< __callable<typename decay<_Fp>::type>::value &&
< !is_same<typename remove_reference<_Fp>::type, function>::value,
< function&
< >::type
< operator=(_Fp&&);
---
> template<class _Fp, class = _EnableIfCallable<_Fp>>
> function& operator=(_Fp&&);
1857,1863c1854,1855
< template <class _Fp>
< typename enable_if
< <
< function<_Rp(_ArgTypes...)>::template __callable<typename decay<_Fp>::type>::value &&
< !is_same<typename remove_reference<_Fp>::type, function<_Rp(_ArgTypes...)>>::value,
< function<_Rp(_ArgTypes...)>&
< >::type
---
> template <class _Fp, class>
> function<_Rp(_ArgTypes...)>&