From b99ccafa079d4838e1a9070bfce915d1c17cbf37 Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Sun, 16 Oct 2016 16:04:33 -0600 Subject: [PATCH] Fix some MSVC issues * Add error if you are using too low of an MSVC compiler * Fix some warnings --- include/chaiscript/chaiscript_defines.hpp | 5 ++++- include/chaiscript/dispatchkit/proxy_functions_detail.hpp | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/include/chaiscript/chaiscript_defines.hpp b/include/chaiscript/chaiscript_defines.hpp index 1002caff..65f69887 100644 --- a/include/chaiscript/chaiscript_defines.hpp +++ b/include/chaiscript/chaiscript_defines.hpp @@ -12,6 +12,9 @@ #define CHAISCRIPT_COMPILER_VERSION CHAISCRIPT_STRINGIZE(_MSC_FULL_VER) #define CHAISCRIPT_MSVC _MSC_VER #define CHAISCRIPT_HAS_DECLSPEC + +static_assert(_MSC_FULL_VER >= 190024210, "Visual C++ 2015 Update 3 or later required"); + #else #define CHAISCRIPT_COMPILER_VERSION __VERSION__ #endif @@ -145,7 +148,7 @@ namespace chaiscript { auto parse_num(const char *t_str) -> typename std::enable_if::value, T>::type { T t = 0; - for (char c = *t_str; (c = *t_str); ++t_str) { + for (char c = *t_str; (c = *t_str) != 0; ++t_str) { if (c < '0' || c > '9') { return t; } diff --git a/include/chaiscript/dispatchkit/proxy_functions_detail.hpp b/include/chaiscript/dispatchkit/proxy_functions_detail.hpp index 54a1c6e0..8258521d 100644 --- a/include/chaiscript/dispatchkit/proxy_functions_detail.hpp +++ b/include/chaiscript/dispatchkit/proxy_functions_detail.hpp @@ -115,7 +115,15 @@ namespace chaiscript const std::vector ¶ms, const Type_Conversions_State &t_conversions) { call_func(sig, std::index_sequence_for{}, f, params, t_conversions); +#ifdef CHAISCRIPT_MSVC +#pragma warning(push) +#pragma warning(disable : 4702) +#endif + // MSVC is reporting that this is unreachable code - and it's wrong. return Handle_Return::handle(); +#ifdef CHAISCRIPT_MSVC +#pragma warning(pop) +#endif } }