Как определить, компилирую ли я код с определенной версией Visual Studio?

Да, _MSC_VER - это макрос, который cpp даст вам версию компилятора. Последние cxx выпуски Visual C++ имели cxx вид .00., где 00 - второстепенное cpp число. Итак, _MSC_VER будет оценивать cxx как .

Вы можете использовать cxx такой код:

#if (_MSC_VER == 1500)
   // ... Do VC9/Visual Studio 2008 specific stuff
#elif (_MSC_VER == 1600)
   // ... Do VC10/Visual Studio 2010 specific stuff
#elif (_MSC_VER == 1700)
   // ... Do VC11/Visual Studio 2012 specific stuff
#endif

Похоже, обновления c++ между последовательными выпусками visual-studio компилятора не изменили compiler-minor-version, поэтому cpp следующий код не требуется:

#if (_MSC_VER >= 1500 && _MSC_VER <= 1600)
   // ... Do VC9/Visual Studio 2008 specific stuff
#endif

Доступ cpp к более подробной информации visual-studio о версиях (такой как номер visual-studio-community сборки компилятора) можно msvs найти с помощью других встроенных c++ переменных препроцессора c++ here.

c++

visual-studio

2022-09-25T17:16:39+00:00
Вопросы с похожей тематикой, как у вопроса:

Как определить, компилирую ли я код с определенной версией Visual Studio?