Work around MSVC compile error.
diff --git a/asio/include/asio/wrap.hpp b/asio/include/asio/wrap.hpp
index 51d0eed..472f57d 100644
--- a/asio/include/asio/wrap.hpp
+++ b/asio/include/asio/wrap.hpp
@@ -419,7 +419,7 @@
     return this->wrapped_(ASIO_MOVE_CAST(Args)(args)...);
   }
 
-#elif defined(ASIO_HAS_STD_TYPE_TRAITS)
+#elif defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER)
 
   typename detail::executor_wrapper_result_of0<T>::type operator()()
   {
@@ -449,7 +449,7 @@
   ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_WRAP_CALL_DEF)
 #undef ASIO_PRIVATE_WRAP_CALL_DEF
 
-#else // defined(ASIO_HAS_STD_TYPE_TRAITS)
+#else // defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER)
 
   typedef typename detail::executor_wrapper_result_type<T>::result_type_or_void
     result_type_or_void;
@@ -482,7 +482,7 @@
   ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_WRAP_CALL_DEF)
 #undef ASIO_PRIVATE_WRAP_CALL_DEF
 
-#endif // defined(ASIO_HAS_STD_TYPE_TRAITS)
+#endif // defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER)
 
 private:
   typedef detail::executor_wrapper_base<T, Executor,