summaryrefslogtreecommitdiff
path: root/boost/mp11/utility.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/mp11/utility.hpp')
-rw-r--r--boost/mp11/utility.hpp17
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
{