diff options
Diffstat (limited to 'boost/mp11/utility.hpp')
-rw-r--r-- | boost/mp11/utility.hpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/boost/mp11/utility.hpp b/boost/mp11/utility.hpp index 4fd98e1c12..eb4fe08dc6 100644 --- a/boost/mp11/utility.hpp +++ b/boost/mp11/utility.hpp @@ -106,10 +106,27 @@ struct mp_no_type { }; +#if BOOST_WORKAROUND( BOOST_CUDA_VERSION, >= 9000000 && BOOST_CUDA_VERSION < 10000000 ) + +template<template<class...> class F, class... T> struct mp_defer_cuda_workaround +{ + using type = mp_if<mp_valid<F, T...>, detail::mp_defer_impl<F, T...>, detail::mp_no_type>; +}; + +#endif + } // namespace detail +#if BOOST_WORKAROUND( BOOST_CUDA_VERSION, >= 9000000 && BOOST_CUDA_VERSION < 10000000 ) + +template<template<class...> class F, class... T> using mp_defer = typename detail::mp_defer_cuda_workaround< F, T...>::type; + +#else + template<template<class...> class F, class... T> using mp_defer = mp_if<mp_valid<F, T...>, detail::mp_defer_impl<F, T...>, detail::mp_no_type>; +#endif + // mp_eval_if, mp_eval_if_c namespace detail { |