Stack Overflow на русском Asked on December 14, 2020
Хочу исполнить раздельную компиляцию через использование условных директив.
Например, если используется компилятор Visual Studio (по-моему Intel), то выполняется следующий код, иначе, если компилятор gcc, то другой код.
Саму реализацию я знаю. Мне важно узнать какой макрос используется для определения компилятора Visual Studio. На просторах интернета я нашел макрос __ MINGW32 __, но он (компилятор) не используется в VS.
Нет, у каждого компилятора есть свой макрос да ещё может меняться от версии к версии, можно конечно под каждый необходимый вручную их узнать, но есть более проверенный способ https://github.com/boostorg/predef/blob/develop/doc/predef.adoc
Пример
#include <boost/predef.h>
#include <iostream>
#if BOOST_COMP_GNUC
#if BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
const char * the_compiler = "GNU GCC, of at least version 4."
#else
const char * the_compiler = "GNU GCC, less than version 4."
#endif
#else
const char * the_compiler = "Not GNU GCC."
#endif
int main()
{
std::cout << the_compiler << std::endl;
return 0;
}
Answered by Arenoros on December 14, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP