05-compiler-msvc.patch 827 B

123456789101112131415161718192021222324252627
  1. diff --git a/include/__functional/bind.h b/include/__functional/bind.h
  2. index 8a0e3b7..1fded44 100644
  3. --- a/include/__functional/bind.h
  4. +++ b/include/__functional/bind.h
  5. @@ -231,6 +231,10 @@ public:
  6. }
  7. };
  8. +# if defined(__CUDACC__) && defined(_MSC_VER)
  9. +# define Y_CUDAFE_MSVC_BUG
  10. +# endif
  11. +
  12. template <class _Fp, class... _BoundArgs>
  13. struct is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {};
  14. @@ -238,7 +242,11 @@ template <class _Rp, class _Fp, class... _BoundArgs>
  15. class __bind_r : public __bind<_Fp, _BoundArgs...> {
  16. typedef __bind<_Fp, _BoundArgs...> base;
  17. typedef typename base::_Fd _Fd;
  18. +# if !defined(Y_CUDAFE_MSVC_BUG)
  19. typedef typename base::_Td _Td;
  20. +# else
  21. + typedef typename tuple<typename decay<_BoundArgs>::type...> _Td;
  22. +# endif
  23. public:
  24. typedef _Rp result_type;