1--- misc/rasqal-0.9.33/src/win32_rasqal_config.h 2+++ misc/build/rasqal-0.9.33/src/win32_rasqal_config.h 3@@ -45,7 +45,12 @@ 4 /* MS names for these functions */ 5 // next line breaks build on wntmsci12 6 //#define vsnprintf _vsnprintf 7+#if !defined(_MSC_VER) || (_MSC_VER < 1900) 8+/* The UCRT -- VS2015 and every toolset since -- declares a real, conforming 9+ snprintf. Defining the name away here rewrites that declaration as it is 10+ being parsed, so the shim has to stop at the runtime that gained one. */ 11 #define snprintf _snprintf 12+#endif 13 #define access _access 14 #define stricmp _stricmp 15 #define strnicmp _strnicmp 16@@ -69,9 +74,16 @@ 17 #undef HAVE_GETTIMEOFDAY 18 19 #include <float.h> 20+#ifndef isnan 21 #define isnan(n) _isnan(n) 22-/* no round function available */ 23+#endif 24+#if !defined(_MSC_VER) || (_MSC_VER < 1900) 25+/* no round function available. On the UCRT there is one, and it is 26+ DECLARED in corecrt_math.h -- so a function-like macro of the same 27+ name mangles that declaration and the header stops parsing 28+ (C2059/C2143), some distance from anything that mentions round. */ 29 #define round(x) floor(x+0.5) 30+#endif 31 32 /* These are SPARQL token definitions */ 33 #ifdef OPTIONAL 34