aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorkosak <kosak@google.com>2014-01-13 22:24:15 +0000
committerkosak <kosak@google.com>2014-01-13 22:24:15 +0000
commit7d1051ce2b3be67d27b200d0050a7ec88c18621b (patch)
treeed5e3c915538976af74959e032815c687ef332d4 /include
parent6576c64903765304ac42767cdbbc3824446550b0 (diff)
downloadgoogletest-7d1051ce2b3be67d27b200d0050a7ec88c18621b.tar.gz
googletest-7d1051ce2b3be67d27b200d0050a7ec88c18621b.tar.bz2
googletest-7d1051ce2b3be67d27b200d0050a7ec88c18621b.zip
Make Google Test build cleanly on Visual Studio 2010, 2012, 2013.
Also improve an error message in gtest_test_utils.py.
Diffstat (limited to 'include')
-rw-r--r--include/gtest/internal/gtest-tuple.h8
-rw-r--r--include/gtest/internal/gtest-tuple.h.pump8
2 files changed, 16 insertions, 0 deletions
diff --git a/include/gtest/internal/gtest-tuple.h b/include/gtest/internal/gtest-tuple.h
index 7b3dfc31..e9b40534 100644
--- a/include/gtest/internal/gtest-tuple.h
+++ b/include/gtest/internal/gtest-tuple.h
@@ -53,6 +53,14 @@
private:
#endif
+// Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that conflict
+// with our own definitions. Therefore using our own tuple does not work on
+// those compilers.
+#if defined(_MSC_VER) && _MSC_VER >= 1600 /* 1600 is Visual Studio 2010 */
+# error "gtest's tuple doesn't compile on Visual Studio 2010 or later. \
+GTEST_USE_OWN_TR1_TUPLE must be set to 0 on those compilers."
+#endif
+
// GTEST_n_TUPLE_(T) is the type of an n-tuple.
#define GTEST_0_TUPLE_(T) tuple<>
#define GTEST_1_TUPLE_(T) tuple<T##0, void, void, void, void, void, void, \
diff --git a/include/gtest/internal/gtest-tuple.h.pump b/include/gtest/internal/gtest-tuple.h.pump
index c7d9e039..429ddfee 100644
--- a/include/gtest/internal/gtest-tuple.h.pump
+++ b/include/gtest/internal/gtest-tuple.h.pump
@@ -52,6 +52,14 @@ $$ This meta comment fixes auto-indentation in Emacs. }}
private:
#endif
+// Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that conflict
+// with our own definitions. Therefore using our own tuple does not work on
+// those compilers.
+#if defined(_MSC_VER) && _MSC_VER >= 1600 /* 1600 is Visual Studio 2010 */
+# error "gtest's tuple doesn't compile on Visual Studio 2010 or later. \
+GTEST_USE_OWN_TR1_TUPLE must be set to 0 on those compilers."
+#endif
+
$range i 0..n-1
$range j 0..n