1
0
forked from boostorg/mp11

Change mp_invoke on Clang to use a struct, because deprecated alias templates never warn

This commit is contained in:
Peter Dimov
2020-03-09 19:59:19 +02:00
parent c806f70b73
commit 0851643af5

View File

@@ -222,8 +222,23 @@ template<class Q, class... T> using mp_invoke_q = typename Q::template fn<T...>;
#endif #endif
// old name for mp_invoke_q retained for compatibility, but deprecated // old name for mp_invoke_q retained for compatibility, but deprecated
#if !defined(__clang__)
template<class Q, class... T> using mp_invoke BOOST_MP11_DEPRECATED("please use mp_invoke_q") = mp_invoke_q<Q, T...>; template<class Q, class... T> using mp_invoke BOOST_MP11_DEPRECATED("please use mp_invoke_q") = mp_invoke_q<Q, T...>;
#else
// Clang doesn't warn on deprecated alias templates
template<class Q, class... T> struct BOOST_MP11_DEPRECATED("please use mp_invoke_q") mp_invoke_
{
using type = mp_invoke_q<Q, T...>;
};
template<class Q, class... T> using mp_invoke = typename mp_invoke_<Q, T...>::type;
#endif
// mp_not_fn<P> // mp_not_fn<P>
template<template<class...> class P> struct mp_not_fn template<template<class...> class P> struct mp_not_fn
{ {