Agree we should be careful with backward compatibility, but I unfortunately don't have anything below VS2005 to test against.

Anyway, if it turns out the change has to be #ifdef-ed, which is most likely, then testing _MSC_VER only is not enough or appropriate. Please note, if one uses VS2013 (_MSC_VER == 1800), it doesn't necessarily mean that the Platform Toolset v120 is being used. Starting with VS2010, it's possible to choose one of the available Platform Toolsets to build with.

So, either _MSC_VER_FULL should be used or a new preprocessor definition can be added, something like _MSC_PT_VER=$(PlatformToolsetVersion) with further reference to _MSC_PT_VER >= 120.

Regards,
Arsen

On Friday, November 8, 2013 3:58 AM, Gregg Smith <gls@gknw.net> wrote:

I'd personally prefer you specifically target _MSC_VER >= 1800 with this
since I know it works just fine as-is on VC6, 9, 10 & 11.

Regards,

Gregg