MSVC doesn't define the standard feature detection macros, so we have to resort to compiler version checks.