diff --git a/src/c_wrapper/function.h b/src/c_wrapper/function.h
index 40525a1313ecbfcf961f817773694cf727597202..5d1a604c309e05d58b0e361971470d8db3c49571 100644
--- a/src/c_wrapper/function.h
+++ b/src/c_wrapper/function.h
@@ -75,9 +75,11 @@ private:
     template<template<typename...> class Getter, int... S>
     PYOPENCL_INLINE auto
     __get(seq<S...>)
+#ifndef _MSC_VER
     -> decltype(std::tuple_cat(
                     ensure_tuple(Getter<ArgConvert<Types> >::get(
                                      std::get<S>(*(tuple_base*)this)))...))
+#endif
     {
         return std::tuple_cat(
             ensure_tuple(Getter<ArgConvert<Types> >::get(