VS2015 Release build error in fstring.cpp

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);

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?


I’ve checked the latest release build “vstsdk366_27_06_2016_build_61” and compiled the “ADelay” target. Release and Debug. Everything’s fine. This project is not working for you?

See you,

Ok, never mind. It looks like it’s a third-party copy-protection issue, where the files are pre-compiled in some fashion. A “normal” Release build works. The issue appears to be when strings get concatenated and when macros get expanded, and the assumed rules are going out the window due to the pre-compiler interference. I have contacted the third party for assistance.