I am getting a compile error in my Release build on Windows in VS 2015, in fstring.cpp; The error is:
1>…......\SDKs\VST\VST3 SDK\base\source\fstring.cpp(3139): error
1>C3688: invalid literal suffix ‘L’; literal operator or literal
1>operator template ‘operator ""L’ not found
The code in question is this (in String::printInt64()):
#if SMTG_CPP11
return String::printf (STR("%") STR(FORMAT_INT64A), value);
#else
Apparently, this concatenates the two strings, but adds an ‘L’ before each part, and in VS2015, the resulting string is L%LI64d, which causes the error because VS now expects there to be a space before that second L. But nothing I’ve tried fixes that error.
I tried changing the Properties->General->Character Set to “Not Set”, but that doesn’t help.
The Debug build compiles fine, and I don’t see any settings in the Release build that would affect how this code is treated, so why is it failing in the Release build? And how can I fix it?