summaryrefslogtreecommitdiff
path: root/include/ruby/win32.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ruby/win32.h')
-rw-r--r--include/ruby/win32.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/include/ruby/win32.h b/include/ruby/win32.h
index 79e3396892..3b7b113133 100644
--- a/include/ruby/win32.h
+++ b/include/ruby/win32.h
@@ -46,17 +46,19 @@ extern "C" {
#undef finally
#undef leave
-#if defined(__cplusplus)
-extern "C++" {
-#endif
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <direct.h>
#include <process.h>
#include <time.h>
+#if defined(__cplusplus) && defined(_MSC_VER) && _MSC_VER == 1200
+extern "C++" { /* template without extern "C++" */
+#endif
#include <math.h>
+#if defined(__cplusplus) && defined(_MSC_VER) && _MSC_VER == 1200
+}
+#endif
#include <signal.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -88,10 +90,6 @@ typedef unsigned int uintptr_t;
# endif
#endif
-#if defined(__cplusplus)
-}
-#endif
-
#ifdef _M_IX86
# define WIN95 1
#else