Apply LWG 2048. It is amazing to me that this actually works, but the existing tests confirm that it does. c++1y status page now showing libc++ is complete for c++1y modulo dynarray issues.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@191142 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant
2013-09-21 19:25:37 +00:00
parent 0836f87fb9
commit dcc6a0bc44
2 changed files with 1 additions and 45 deletions

View File

@@ -358,18 +358,6 @@ template <class S, class T> const_mem_fun_ref_t<S,T> mem_fun_ref(S (
template <class S, class T, class A> const_mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A) const);
template<class R, class T> unspecified mem_fn(R T::*);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...));
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) volatile);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const volatile);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) &);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const &);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) volatile &);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const volatile &);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) &&);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const &&);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) volatile &&);
template<class R, class T, class... Args> unspecified mem_fn(R (T::*)(Args...) const volatile &&);
class bad_function_call
: public exception
@@ -1207,38 +1195,6 @@ mem_fn(_Rp _Tp::* __pm)
return __mem_fn<_Rp _Tp::*>(__pm);
}
template<class _Rp, class _Tp, class ..._Args>
inline _LIBCPP_INLINE_VISIBILITY
__mem_fn<_Rp (_Tp::*)(_Args...)>
mem_fn(_Rp (_Tp::* __pm)(_Args...))
{
return __mem_fn<_Rp (_Tp::*)(_Args...)>(__pm);
}
template<class _Rp, class _Tp, class ..._Args>
inline _LIBCPP_INLINE_VISIBILITY
__mem_fn<_Rp (_Tp::*)(_Args...) const>
mem_fn(_Rp (_Tp::* __pm)(_Args...) const)
{
return __mem_fn<_Rp (_Tp::*)(_Args...) const>(__pm);
}
template<class _Rp, class _Tp, class ..._Args>
inline _LIBCPP_INLINE_VISIBILITY
__mem_fn<_Rp (_Tp::*)(_Args...) volatile>
mem_fn(_Rp (_Tp::* __pm)(_Args...) volatile)
{
return __mem_fn<_Rp (_Tp::*)(_Args...) volatile>(__pm);
}
template<class _Rp, class _Tp, class ..._Args>
inline _LIBCPP_INLINE_VISIBILITY
__mem_fn<_Rp (_Tp::*)(_Args...) const volatile>
mem_fn(_Rp (_Tp::* __pm)(_Args...) const volatile)
{
return __mem_fn<_Rp (_Tp::*)(_Args...) const volatile>(__pm);
}
// bad_function_call
class _LIBCPP_EXCEPTION_ABI bad_function_call