diff --git a/include/chaiscript/chaiscript_defines.hpp b/include/chaiscript/chaiscript_defines.hpp index 1002caf..65f6988 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 54a1c6e..8258521 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 } }