summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2015-05-02 14:30:52 -0400
committerBernard Normier <bernard@zeroc.com>2015-05-02 14:30:52 -0400
commit1e3b332b0c6567a084a5a4501e82807aac0a8b22 (patch)
tree01bb71f671cb8bcf296f1e8eceda0501e6b9f5e0 /cpp
parentICE-6410 - Java error with empty truststore (diff)
downloadice-1e3b332b0c6567a084a5a4501e82807aac0a8b22.tar.bz2
ice-1e3b332b0c6567a084a5a4501e82807aac0a8b22.tar.xz
ice-1e3b332b0c6567a084a5a4501e82807aac0a8b22.zip
Add support for VS 2015 RC (VC140)
Diffstat (limited to 'cpp')
-rwxr-xr-xcpp/config/Make.rules.mak6
-rwxr-xr-xcpp/config/Make.rules.msvc3
-rw-r--r--cpp/include/IceUtil/Config.h3
-rw-r--r--cpp/include/IceUtil/PushDisableWarnings.h4
-rw-r--r--cpp/src/IceUtil/Exception.cpp4
-rw-r--r--cpp/src/IceUtil/FileUtil.h8
6 files changed, 24 insertions, 4 deletions
diff --git a/cpp/config/Make.rules.mak b/cpp/config/Make.rules.mak
index 57ba5372e77..2da1ec58e7c 100755
--- a/cpp/config/Make.rules.mak
+++ b/cpp/config/Make.rules.mak
@@ -129,7 +129,9 @@ SETARGV = setargv.obj
!error CPP_COMPILER: $(CPP_COMPILER) not supported to build Ice for WinRT
!endif
-!if "$(CPP_COMPILER)" == "VC110"
+!if "$(CPP_COMPILER)" == "VC140"
+libsuff = \vc140$(x64suffix)
+!elseif "$(CPP_COMPILER)" == "VC110"
libsuff = \vc110$(x64suffix)
!elseif "$(CPP_COMPILER)" == "VC100"
libsuff = \vc100$(x64suffix)
@@ -152,6 +154,8 @@ COMPSUFFIX = _vc100
COMPSUFFIX = _vc110
!elseif "$(CPP_COMPILER)" == "VC120"
COMPSUFFIX = _vc120
+!elseif "$(CPP_COMPILER)" == "VC140"
+COMPSUFFIX = _vc140
!endif
!endif
diff --git a/cpp/config/Make.rules.msvc b/cpp/config/Make.rules.msvc
index 28e1788bdff..fa0c7a3f5ec 100755
--- a/cpp/config/Make.rules.msvc
+++ b/cpp/config/Make.rules.msvc
@@ -29,7 +29,8 @@ GENERATE_PDB = yes
CPPFLAGS = $(CPPFLAGS) -nologo -GR -EHsc -WX
!if "$(MAXWARN)" != "yes"
-CPPFLAGS = $(CPPFLAGS) -W3 -wd4250 -wd4251
+# Added for VS2015 RC: -wd4275
+CPPFLAGS = $(CPPFLAGS) -W3 -wd4250 -wd4251 -wd4275
!else
CPPFLAGS = $(CPPFLAGS) -W4
!endif
diff --git a/cpp/include/IceUtil/Config.h b/cpp/include/IceUtil/Config.h
index b1403509b48..471fe9881c5 100644
--- a/cpp/include/IceUtil/Config.h
+++ b/cpp/include/IceUtil/Config.h
@@ -61,8 +61,7 @@
#endif
-#if defined(ICE_CPP11) && !defined(_MSC_VER)
-// Visual Studio does not support noexcept yet
+#if defined(ICE_CPP11) && (!defined(_MSC_VER) || (_MSC_VER >= 1900))
# define ICE_NOEXCEPT noexcept
# define ICE_NOEXCEPT_FALSE noexcept(false)
#else
diff --git a/cpp/include/IceUtil/PushDisableWarnings.h b/cpp/include/IceUtil/PushDisableWarnings.h
index 3c27c4f7197..ab9692eb7d5 100644
--- a/cpp/include/IceUtil/PushDisableWarnings.h
+++ b/cpp/include/IceUtil/PushDisableWarnings.h
@@ -15,6 +15,10 @@
# pragma warning(disable:4250) // ... : inherits ... via dominance
# pragma warning(disable:4251) // class ... needs to have dll-interface to be used by clients of class ...
# pragma warning(disable:4512) // ... assignment operator could not be generated
+
+# if _MSC_VER >= 1900
+# pragma warning(disable:4275) // non dll-interface class ... used as base for dll-interface class ...
+# endif
#endif
#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
diff --git a/cpp/src/IceUtil/Exception.cpp b/cpp/src/IceUtil/Exception.cpp
index 3eb63677a08..d21946f8195 100644
--- a/cpp/src/IceUtil/Exception.cpp
+++ b/cpp/src/IceUtil/Exception.cpp
@@ -40,6 +40,10 @@
# if defined(_MSC_VER) && _MSC_VER >= 1700
# define DBGHELP_TRANSLATE_TCHAR
# include <IceUtil/StringConverter.h>
+# if _MSC_VER >= 1900
+# // VS 2015 RC issues this warning for code in DbgHelp.h
+# pragma warning(disable:4091)
+# endif
# endif
# include <DbgHelp.h>
# include <tchar.h>
diff --git a/cpp/src/IceUtil/FileUtil.h b/cpp/src/IceUtil/FileUtil.h
index 4caf139b148..a833e59e785 100644
--- a/cpp/src/IceUtil/FileUtil.h
+++ b/cpp/src/IceUtil/FileUtil.h
@@ -129,6 +129,10 @@ public:
using std::ifstream::open;
#endif
+#if defined(_MSC_VER) && (_MSC_VER >= 1900)
+ ifstream(const ifstream&) = delete;
+#endif
+
private:
// Hide const char* definitions since they shouldn't be used.
@@ -148,6 +152,10 @@ public:
using std::ofstream::open;
#endif
+#if defined(_MSC_VER) && (_MSC_VER >= 1900)
+ ofstream(const ofstream&) = delete;
+#endif
+
private:
// Hide const char* definitions since they shouldn't be used.